Skip to content

Commit afd770d

Browse files
committed
feat: update solutions to lc problems
1 parent d9e00c6 commit afd770d

File tree

7 files changed

+54
-8
lines changed

7 files changed

+54
-8
lines changed

solution/0000-0099/0081.Search in Rotated Sorted Array II/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555

5656
<!-- 这里可写通用的实现逻辑 -->
5757

58-
二分查找
58+
**方法一:二分查找**
5959

6060
<!-- tabs:start -->
6161

solution/0000-0099/0083.Remove Duplicates from Sorted List/README.md

+20-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
# self.val = val
5252
# self.next = next
5353
class Solution:
54-
def deleteDuplicates(self, head: ListNode) -> ListNode:
54+
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
5555
cur = head
5656
while cur and cur.next:
5757
if cur.val == cur.next.val:
@@ -61,6 +61,25 @@ class Solution:
6161
return head
6262
```
6363

64+
```python
65+
# Definition for singly-linked list.
66+
# class ListNode:
67+
# def __init__(self, val=0, next=None):
68+
# self.val = val
69+
# self.next = next
70+
class Solution:
71+
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
72+
dummy = ListNode(1000)
73+
cur = dummy
74+
while head:
75+
if head.val != cur.val:
76+
cur.next = head
77+
cur = cur.next
78+
head = head.next
79+
cur.next = None
80+
return dummy.next
81+
```
82+
6483
### **Java**
6584

6685
<!-- 这里可写当前语言的特殊实现逻辑 -->

solution/0000-0099/0083.Remove Duplicates from Sorted List/README_EN.md

+20-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
# self.val = val
4444
# self.next = next
4545
class Solution:
46-
def deleteDuplicates(self, head: ListNode) -> ListNode:
46+
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
4747
cur = head
4848
while cur and cur.next:
4949
if cur.val == cur.next.val:
@@ -53,6 +53,25 @@ class Solution:
5353
return head
5454
```
5555

56+
```python
57+
# Definition for singly-linked list.
58+
# class ListNode:
59+
# def __init__(self, val=0, next=None):
60+
# self.val = val
61+
# self.next = next
62+
class Solution:
63+
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
64+
dummy = ListNode(1000)
65+
cur = dummy
66+
while head:
67+
if head.val != cur.val:
68+
cur.next = head
69+
cur = cur.next
70+
head = head.next
71+
cur.next = None
72+
return dummy.next
73+
```
74+
5675
### **Java**
5776

5877
```java

solution/0000-0099/0086.Partition List/README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,12 @@
4040

4141
<!-- 这里可写通用的实现逻辑 -->
4242

43+
**方法一:模拟**
44+
4345
创建两个链表,一个存放小于 `x` 的节点,另一个存放大于等于 `x` 的节点,之后进行拼接即可。
4446

47+
时间复杂度 $O(n),空间复杂度 $O(1)$。其中 $n$ 是原链表的长度。
48+
4549
<!-- tabs:start -->
4650

4751
### **Python3**
@@ -55,7 +59,7 @@
5559
# self.val = val
5660
# self.next = next
5761
class Solution:
58-
def partition(self, head: ListNode, x: int) -> ListNode:
62+
def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
5963
d1, d2 = ListNode(), ListNode()
6064
t1, t2 = d1, d2
6165
while head:

solution/0000-0099/0086.Partition List/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
# self.val = val
4646
# self.next = next
4747
class Solution:
48-
def partition(self, head: ListNode, x: int) -> ListNode:
48+
def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
4949
d1, d2 = ListNode(), ListNode()
5050
t1, t2 = d1, d2
5151
while head:

solution/0000-0099/0086.Partition List/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# self.val = val
55
# self.next = next
66
class Solution:
7-
def partition(self, head: ListNode, x: int) -> ListNode:
7+
def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
88
d1, d2 = ListNode(), ListNode()
99
t1, t2 = d1, d2
1010
while head:

solution/0100-0199/0105.Construct Binary Tree from Preorder and Inorder Traversal/README.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,18 @@
4242

4343
<!-- 这里可写通用的实现逻辑 -->
4444

45-
前序序列的第一个结点 `preorder[0]` 为根节点,我们在中序序列中找到根节点的位置 i,可以将中序序列划分为左子树 `inorder[:i]` 、右子树 `inorder[i+1:]`
45+
**方法一:递归**
4646

47-
通过左右子树的区间,可以计算出左、右子树节点的个数,假设为 m、n。然后在前序节点中,从根节点往后的 m 个节点为左子树,再往后的 n 个节点为右子树。
47+
前序序列的第一个结点 $preorder[0]$ 为根节点,我们在中序序列中找到根节点的位置 $i$,可以将中序序列划分为左子树 $inorder[0..i]$ 、右子树 $inorder[i+1..]$。
48+
49+
通过左右子树的区间,可以计算出左、右子树节点的个数,假设为 $m$ 和 $n$。然后在前序节点中,从根节点往后的 $m$ 个节点为左子树,再往后的 $n$ 个节点为右子树。
4850

4951
递归求解即可。
5052

5153
> 前序遍历:先遍历根节点,再遍历左右子树;中序遍历:先遍历左子树,再遍历根节点,最后遍历右子树。
5254
55+
时间复杂度 $O(n)$,空间复杂度 $O(n)$。
56+
5357
<!-- tabs:start -->
5458

5559
### **Python3**

0 commit comments

Comments
 (0)