File tree 1 file changed +15
-12
lines changed
solution/0000-0099/0075.Sort Colors
1 file changed +15
-12
lines changed Original file line number Diff line number Diff line change 54
54
55
55
<!-- 这里可写通用的实现逻辑 -->
56
56
57
- 有两种方式
58
-
59
- - 排序
60
- - 题目本质还是排序,可用 ` sort() ` 一键解锁。
61
- - 双指针
62
- - 数组元素只存在 ` 0 ` 、` 1 ` 和 ` 2 ` 三种,因此将 ` 0 ` 移动至数组头部,` 2 ` 移动至数组尾部,排序便完成了。
63
- - 安排两个变量,分别指向数组头部与尾部。
64
- - 遍历数组,分三种情况:
65
- - ` 0 ` :与头指针数值交换,并向前一步,遍历指针向前。
66
- - ` 2 ` :与尾指针数值交换,并向后一步。** 遍历指针不变** (还需要处理交换上来的数值)。
67
- - ` 1 ` :遍历指针向前。
57
+ ** 计数:**
58
+
59
+ - 遍历 ` nums ` ,记录其中 ` 0 ` 、` 1 ` 和 ` 2 ` 出现的次数。
60
+ - 依照记录的数字,按照顺序重新填充 ` nums ` 。
61
+
62
+ ** 双指针:**
63
+
64
+ 数组元素只存在 ` 0 ` 、` 1 ` 和 ` 2 ` 三种,因此将 ` 0 ` 移动至数组头部,` 2 ` 移动至数组尾部,排序便完成了。
65
+
66
+ - 安排两个变量,分别指向数组头部与尾部。
67
+ - 遍历数组,分三种情况:
68
+ - ` 0 ` :与头指针数值交换,并向前一步,遍历指针向前。
69
+ - ` 2 ` :与尾指针数值交换,并向后一步。** 遍历指针不变** (还需要处理交换上来的数值)。
70
+ - ` 1 ` :遍历指针向前。
68
71
69
72
<!-- tabs:start -->
70
73
@@ -232,7 +235,7 @@ impl Solution {
232
235
if n == 0 {
233
236
nums . swap (i , l );
234
237
l += 1 ;
235
- }
238
+ }
236
239
i += 1 ;
237
240
}
238
241
}
You can’t perform that action at this time.
0 commit comments