Skip to content

Commit d24b951

Browse files
committed
update
1 parent 1ae9b27 commit d24b951

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

10. 合并两个有序链表.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
**将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。**
2+
3+
```
4+
输入:l1 = [1,2,4], l2 = [1,3,4]
5+
输出:[1,1,2,3,4,4]
6+
```
7+
8+
```
9+
# Definition for singly-linked list.
10+
# class ListNode:
11+
# def __init__(self, val=0, next=None):
12+
# self.val = val
13+
# self.next = next
14+
class Solution:
15+
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
16+
# 终止条件,直到两个链表都空
17+
if not list1:
18+
return list2
19+
if not list2:
20+
return list1
21+
# 递归调用
22+
if list1.val < list2.val:
23+
list1.next = self.mergeTwoLists(list1.next, list2)
24+
return list1
25+
else:
26+
list2.next = self.mergeTwoLists(list1, list2.next)
27+
return list2
28+
```

11. 括号生成.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
**数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。**
2+
3+
```
4+
输入:n = 3
5+
输出:["((()))","(()())","(())()","()(())","()()()"]
6+
```
7+
8+
Ref: https://leetcode.cn/problems/generate-parentheses/solution/hui-su-suan-fa-by-liweiwei1419/
9+
10+
![algo5](./images/algo5.jpg)
11+
12+
```
13+
class Solution:
14+
def generateParenthesis(self, n: int) -> List[str]:
15+
#回溯法
16+
res = []
17+
#当前括号组合
18+
cur = ''
19+
#当前剩余左右括号数
20+
left = right = n
21+
#构造递归
22+
def dfs(left, right, cur):
23+
#递归终止条件
24+
if left==0 and right==0:
25+
res.append(cur)
26+
return
27+
#情况1
28+
if left>0:
29+
dfs(left-1, right, cur+'(')
30+
#情况1
31+
if right > left:
32+
dfs(left, right-1, cur+')')
33+
#调用递归
34+
dfs(left, right, cur)
35+
#返回要优化的目标
36+
return res
37+
```

images/algo5.jpg

51.7 KB
Loading

0 commit comments

Comments
 (0)