Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 01070d9

Browse files
committed
更新分类题解列表 + 更正错误
1 parent 4a2b277 commit 01070d9

File tree

8 files changed

+62
-26
lines changed

8 files changed

+62
-26
lines changed

‎Assets/Origins/Categories-List.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@
7575

7676
#### 对撞指针题目
7777

78-
###### 0167. 两数之和 II - 输入有序数组、0344. 反转字符串、0345. 反转字符串中的元音字母、0125. 验证回文串、0011. 盛最多水的容器、0611. 有效三角形的个数、0015. 三数之和、0016. 最接近的三数之和、0018. 四数之和、0259. 较小的三数之和、0658. 找到 K 个最接近的元素、1099. 小于 K 的两数之和、0075. 颜色分类、0360. 有序转化数组、0977. 有序数组的平方、0881. 救生艇、0042. 接雨水、剑指 Offer 21. 调整数组顺序使奇数位于偶数前面、0443. 压缩字符串
78+
###### 0167. 两数之和 II - 输入有序数组、0344. 反转字符串、0345. 反转字符串中的元音字母、0125. 验证回文串、0011. 盛最多水的容器、0611. 有效三角形的个数、0015. 三数之和、0016. 最接近的三数之和、0018. 四数之和、0259. 较小的三数之和、0658. 找到 K 个最接近的元素、1099. 小于 K 的两数之和、0075. 颜色分类、0360. 有序转化数组、0977. 有序数组的平方、0881. 救生艇、0042. 接雨水、0443. 压缩字符串
7979

8080
#### 快慢指针题目
8181

82-
###### 0026. 删除有序数组中的重复项、0080. 删除有序数组中的重复项 II、0027. 移除元素、0283. 移动零、0845. 数组中的最长山脉、0088. 合并两个有序数组、0719. 找出第 K 小的数对距离、0334. 递增的三元子序列、0978. 最长湍流子数组
82+
###### 0026. 删除有序数组中的重复项、0080. 删除有序数组中的重复项 II、0027. 移除元素、0283. 移动零、0845. 数组中的最长山脉、0088. 合并两个有序数组、0719. 找出第 K 小的数对距离、0334. 递增的三元子序列、0978. 最长湍流子数组、剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
8383

8484
#### 分离双指针题目
8585

‎Contents/00.Introduction/05.Categories-List.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,6 @@
186186
| 0977 | [有序数组的平方](https://leetcode.cn/problems/squares-of-a-sorted-array/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0977.%20%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.md) | 数组、双指针、排序 | 简单 |
187187
| 0881 | [救生艇](https://leetcode.cn/problems/boats-to-save-people/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0881.%20%E6%95%91%E7%94%9F%E8%89%87.md) | 贪心、数组、双指针、排序 | 中等 |
188188
| 0042 | [接雨水](https://leetcode.cn/problems/trapping-rain-water/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0042.%20%E6%8E%A5%E9%9B%A8%E6%B0%B4.md) | 栈、数组、双指针、动态规划、单调栈 | 困难 |
189-
| 剑指 Offer 21 | [调整数组顺序使奇数位于偶数前面](https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/%E5%89%91%E6%8C%87%20Offer%2021.%20%E8%B0%83%E6%95%B4%E6%95%B0%E7%BB%84%E9%A1%BA%E5%BA%8F%E4%BD%BF%E5%A5%87%E6%95%B0%E4%BD%8D%E4%BA%8E%E5%81%B6%E6%95%B0%E5%89%8D%E9%9D%A2.md) | 数组、双指针、排序 | 简单 |
190189
| 0443 | [压缩字符串](https://leetcode.cn/problems/string-compression/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0443.%20%E5%8E%8B%E7%BC%A9%E5%AD%97%E7%AC%A6%E4%B8%B2.md) | 双指针、字符串 | 中等 |
191190

192191
#### 快慢指针题目
@@ -202,6 +201,7 @@
202201
| 0719 | [找出第 K 小的数对距离](https://leetcode.cn/problems/find-k-th-smallest-pair-distance/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0719.%20%E6%89%BE%E5%87%BA%E7%AC%AC%20K%20%E5%B0%8F%E7%9A%84%E6%95%B0%E5%AF%B9%E8%B7%9D%E7%A6%BB.md) | 数组、双指针、二分查找、排序 | 困难 |
203202
| 0334 | [递增的三元子序列](https://leetcode.cn/problems/increasing-triplet-subsequence/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0334.%20%E9%80%92%E5%A2%9E%E7%9A%84%E4%B8%89%E5%85%83%E5%AD%90%E5%BA%8F%E5%88%97.md) | 贪心、数组 | 中等 |
204203
| 0978 | [最长湍流子数组](https://leetcode.cn/problems/longest-turbulent-subarray/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0978.%20%E6%9C%80%E9%95%BF%E6%B9%8D%E6%B5%81%E5%AD%90%E6%95%B0%E7%BB%84.md) | 数组、动态规划、滑动窗口 | 中等 |
204+
| 剑指 Offer 21 | [调整数组顺序使奇数位于偶数前面](https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/%E5%89%91%E6%8C%87%20Offer%2021.%20%E8%B0%83%E6%95%B4%E6%95%B0%E7%BB%84%E9%A1%BA%E5%BA%8F%E4%BD%BF%E5%A5%87%E6%95%B0%E4%BD%8D%E4%BA%8E%E5%81%B6%E6%95%B0%E5%89%8D%E9%9D%A2.md) | 数组、双指针、排序 | 简单 |
205205

206206
#### 分离双指针题目
207207

‎Contents/01.Array/04.Array-Two-Pointers/02.Array-Two-Pointers-List.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
| 0977 | [有序数组的平方](https://leetcode.cn/problems/squares-of-a-sorted-array/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0977.%20%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.md) | 数组、双指针、排序 | 简单 |
2222
| 0881 | [救生艇](https://leetcode.cn/problems/boats-to-save-people/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0881.%20%E6%95%91%E7%94%9F%E8%89%87.md) | 贪心、数组、双指针、排序 | 中等 |
2323
| 0042 | [接雨水](https://leetcode.cn/problems/trapping-rain-water/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0042.%20%E6%8E%A5%E9%9B%A8%E6%B0%B4.md) | 栈、数组、双指针、动态规划、单调栈 | 困难 |
24-
| 剑指 Offer 21 | [调整数组顺序使奇数位于偶数前面](https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/%E5%89%91%E6%8C%87%20Offer%2021.%20%E8%B0%83%E6%95%B4%E6%95%B0%E7%BB%84%E9%A1%BA%E5%BA%8F%E4%BD%BF%E5%A5%87%E6%95%B0%E4%BD%8D%E4%BA%8E%E5%81%B6%E6%95%B0%E5%89%8D%E9%9D%A2.md) | 数组、双指针、排序 | 简单 |
2524
| 0443 | [压缩字符串](https://leetcode.cn/problems/string-compression/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0443.%20%E5%8E%8B%E7%BC%A9%E5%AD%97%E7%AC%A6%E4%B8%B2.md) | 双指针、字符串 | 中等 |
2625

2726
#### 快慢指针题目
@@ -37,6 +36,7 @@
3736
| 0719 | [找出第 K 小的数对距离](https://leetcode.cn/problems/find-k-th-smallest-pair-distance/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0719.%20%E6%89%BE%E5%87%BA%E7%AC%AC%20K%20%E5%B0%8F%E7%9A%84%E6%95%B0%E5%AF%B9%E8%B7%9D%E7%A6%BB.md) | 数组、双指针、二分查找、排序 | 困难 |
3837
| 0334 | [递增的三元子序列](https://leetcode.cn/problems/increasing-triplet-subsequence/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0334.%20%E9%80%92%E5%A2%9E%E7%9A%84%E4%B8%89%E5%85%83%E5%AD%90%E5%BA%8F%E5%88%97.md) | 贪心、数组 | 中等 |
3938
| 0978 | [最长湍流子数组](https://leetcode.cn/problems/longest-turbulent-subarray/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/0978.%20%E6%9C%80%E9%95%BF%E6%B9%8D%E6%B5%81%E5%AD%90%E6%95%B0%E7%BB%84.md) | 数组、动态规划、滑动窗口 | 中等 |
39+
| 剑指 Offer 21 | [调整数组顺序使奇数位于偶数前面](https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/) | [Python](https://github.com/itcharge/LeetCode-Py/blob/main/Solutions/%E5%89%91%E6%8C%87%20Offer%2021.%20%E8%B0%83%E6%95%B4%E6%95%B0%E7%BB%84%E9%A1%BA%E5%BA%8F%E4%BD%BF%E5%A5%87%E6%95%B0%E4%BD%8D%E4%BA%8E%E5%81%B6%E6%95%B0%E5%89%8D%E9%9D%A2.md) | 数组、双指针、排序 | 简单 |
4040

4141
#### 分离双指针题目
4242

‎Solutions/0169. 多数元素.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class Solution:
5050
numDict[num] += 1
5151
else:
5252
numDict[num] = 1
53-
max = 0
53+
max = float('-inf')
5454
max_index = -1
5555
for num in numDict:
5656
if numDict[num] > max:

‎Solutions/0199. 二叉树的右视图.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,14 @@ class Solution:
4848
queue = [root]
4949
order = []
5050
while queue:
51-
level = []
5251
size = len(queue)
5352
for i in range(size):
5453
curr = queue.pop(0)
55-
level.append(curr.val)
5654
if curr.left:
5755
queue.append(curr.left)
5856
if curr.right:
5957
queue.append(curr.right)
60-
if i == size-1:
58+
if i == size-1:
6159
order.append(curr.val)
6260
return order
6361
```

‎Solutions/0231. 2 的幂.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class Solution:
6262

6363
因为 $n$ 能取的最大值为 2ドル^{31}-1$。我们可以计算出:在 $n$ 的范围内,2ドル$ 的幂次方最大为 2ドル^{30} = 1073741824$。
6464

65-
因为 2ドル$ 为质数,则 2ドル^{30}$ 的除数只有 2ドル^0, 2^1, ..., 2^{30}$。所以如果 $n$ 为 2ドル$ 的幂次方,则 $n$ 肯定能被 $2^{30}$ 整除,直接判断即可。
65+
因为 2ドル$ 为质数,则 2ドル^{30}$ 的除数只有 2ドル^0, 2^1, ..., 2^{30}$。所以如果 $n$ 为 2ドル$ 的幂次方,则 2ドル^{30}$ 肯定能被 $n$ 整除,直接判断即可。
6666

6767
### 思路 2:代码
6868

‎Solutions/0289. 生命游戏.md

Lines changed: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,69 @@
55

66
## 题目大意
77

8-
给定一个 `m * n` 的二维数组 `board`,每一个格子都可以看做是一个细胞。每个细胞都有一个初始状态:`1` 代表活细胞,`0` 代表死细胞。每个细胞与其相邻的八个位置(水平、垂直、对角线)细胞遵循以下生存规律:
8+
**描述**:给定一个 $m \times n$ 大小的二维数组 $board$,每一个格子都可以看做是一个细胞。每个细胞都有一个初始状态:1ドル$ 代表活细胞,0ドル$ 代表死细胞。每个细胞与其相邻的八个位置(水平、垂直、对角线)细胞遵循以下生存规律:
99

10-
- 如果活细胞周围八个位置的活细胞数少于 2 个,则该位置活细胞死亡;
11-
- 如果活细胞周围八个位置有 2 个或 3 个活细胞,则该位置活细胞仍然存活;
12-
- 如果活细胞周围八个位置有超过 3 个活细胞,则该位置活细胞死亡;
13-
- 如果死细胞周围正好有 3 个活细胞,则该位置死细胞复活。
10+
- 如果活细胞周围八个位置的活细胞数少于 2ドル$ 个,则该位置活细胞死亡;
11+
- 如果活细胞周围八个位置有 2ドル$ 个或 3ドル$ 个活细胞,则该位置活细胞仍然存活;
12+
- 如果活细胞周围八个位置有超过 3ドル$ 个活细胞,则该位置活细胞死亡;
13+
- 如果死细胞周围正好有 3ドル$ 个活细胞,则该位置死细胞复活。
1414

1515
二维数组代表的下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的的。其中细胞的出生和死亡是同时发生的。
1616

17-
现在给定 `m * n` 的二维数组 `board` 的当前状态。
17+
现在给定 $m \times n$ 的二维数组 $board$ 的当前状态。
1818

19-
要求:返回下一个状态。
19+
**要求**:返回下一个状态。
20+
21+
**说明**:
22+
23+
- $m == board.length$。
24+
- $n == board[i].length$。
25+
- 1ドル \le m, n \le 25$。
26+
- $board[i][j]$ 为 0ドル$ 或 1ドル$。
27+
- **进阶**:
28+
- 你可以使用原地算法解决本题吗?请注意,面板上所有格子需要同时被更新:你不能先更新某些格子,然后使用它们的更新后的值再更新其他格子。
29+
- 本题中,我们使用二维数组来表示面板。原则上,面板是无限的,但当活细胞侵占了面板边界时会造成问题。你将如何解决这些问题?
30+
31+
32+
**示例**:
33+
34+
- 示例 1:
35+
36+
![](https://assets.leetcode.com/uploads/2020/12/26/grid1.jpg)
37+
38+
```Python
39+
输入:board = [[0,1,0],[0,0,1],[1,1,1],[0,0,0]]
40+
输出:[[0,0,0],[1,0,1],[0,1,1],[0,1,0]]
41+
```
42+
43+
- 示例 2:
44+
45+
![](https://assets.leetcode.com/uploads/2020/12/26/grid2.jpg)
46+
47+
```Python
48+
输入:board = [[1,1],[1,0]]
49+
输出:[[1,1],[1,1]]
50+
```
2051

2152
## 解题思路
2253

54+
### 思路 1:模拟
55+
2356
因为下一个状态隐含了过去细胞的状态,所以不能直接在原二维数组上直接进行修改。细胞的状态总共有四种情况:
2457

25-
- 死细胞 -> 死细胞,即 `0` -> `0`
26-
- 死细胞 -> 活细胞,即 `0` -> `1`
27-
- 活细胞 -> 活细胞,即 `1` -> `1`
28-
- 活细胞 -> 死细胞,即 `1` -> `0`
58+
- 死细胞 -> 死细胞,即 0ドル \rightarrow 0$
59+
- 死细胞 -> 活细胞,即 0ドル \rightarrow 1$
60+
- 活细胞 -> 活细胞,即 1ドル \rightarrow 1$
61+
- 活细胞 -> 死细胞,即 1ドル \rightarrow 0$
2962

30-
死细胞 -> 死细胞,活细胞 -> 活细胞,不会对前后状态造成影响,所以主要考虑另外两种情况。我们把活细胞 -> 死细胞暂时标记为 `-1`,并且统计每个细胞周围活细胞数量时,使用绝对值统计,这样 `abs(-1)` 也可以暂时标记为活细胞。然后把死细胞 -> 活细胞暂时标记为 `2`,这样判断的时候也不会统计上去。然后开始遍历。
63+
死细胞 -> 死细胞,活细胞 -> 活细胞,不会对前后状态造成影响,所以主要考虑另外两种情况。我们把活细胞 -> 死细胞暂时标记为 $-1$,并且统计每个细胞周围活细胞数量时,使用绝对值统计,这样 $abs(-1)$ 也可以暂时标记为活细胞。然后把死细胞 -> 活细胞暂时标记为 2ドル$,这样判断的时候也不会统计上去。然后开始遍历。
3164

3265
- 遍历二维数组的每一个位置。并对该位置遍历周围八个位置,计算出八个位置上的活细胞数量。
33-
- 如果此位置是活细胞,并且周围活细胞少于 `2` 个或超过 `3` 个,则将其暂时标记为 `-1`,意为此细胞死亡。
34-
- 如果此位置是死细胞,并且周围有 3 个活细胞,则将暂时标记为 `1`,意为此细胞复活。
35-
- 遍历完之后,再次遍历一遍二维数组,如果该位置为 `-1`,将其赋值为 `0`,如果该位置为 `2`,将其赋值为 `1`
66+
- 如果此位置是活细胞,并且周围活细胞少于 2ドル$ 个或超过 3ドル$ 个,则将其暂时标记为 $-1$,意为此细胞死亡。
67+
- 如果此位置是死细胞,并且周围有 3ドル$ 个活细胞,则将暂时标记为 2ドル$,意为此细胞复活。
68+
- 遍历完之后,再次遍历一遍二维数组,如果该位置为 $-1$,将其赋值为 0ドル$,如果该位置为 2ドル$,将其赋值为 1ドル$
3669

37-
##代码
70+
### 思路 1:代码
3871

3972
```Python
4073
class Solution:
@@ -69,3 +102,8 @@ class Solution:
69102
board[row][col] = 1
70103
```
71104

105+
### 思路 1:复杂度分析
106+
107+
- **时间复杂度**:$O(m \times n),ドル其中 $m$、$n$ 分别为 $board$ 的行数和列数。
108+
- **空间复杂度**:$O(m \times n)$。
109+

‎Solutions/0912. 排序数组.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
class Solution:
5252
def bubbleSort(self, arr):
5353
# 第 i 趟排序
54-
for i in range(len(arr)):
54+
for i in range(len(arr)-1):
5555
# 从序列中前 n - i + 1 个元素的第 1 个元素开始,相邻两个元素进行比较
5656
for j in range(len(arr) - i - 1):
5757
# 相邻两个元素进行比较,如果前者大于后者,则交换位置

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /