From 6ae64a5cc791f95c6871693112f32f9516e3c1c1 Mon Sep 17 00:00:00 2001 From: YangFong Date: Thu, 17 Mar 2022 09:23:44 +0800 Subject: [PATCH] docs: update a description of the solution to lc problem: No.0075 No.0075.Sort Colors --- solution/0000-0099/0075.Sort Colors/README.md | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/solution/0000-0099/0075.Sort Colors/README.md b/solution/0000-0099/0075.Sort Colors/README.md index de76b8e7ee8b0..1e2146b3621c1 100644 --- a/solution/0000-0099/0075.Sort Colors/README.md +++ b/solution/0000-0099/0075.Sort Colors/README.md @@ -54,17 +54,20 @@ -有两种方式 - -- 排序 - - 题目本质还是排序,可用 `sort()` 一键解锁。 -- 双指针 - - 数组元素只存在 `0`、`1` 和 `2` 三种,因此将 `0` 移动至数组头部,`2` 移动至数组尾部,排序便完成了。 - - 安排两个变量,分别指向数组头部与尾部。 - - 遍历数组,分三种情况: - - `0`:与头指针数值交换,并向前一步,遍历指针向前。 - - `2`:与尾指针数值交换,并向后一步。**遍历指针不变**(还需要处理交换上来的数值)。 - - `1`:遍历指针向前。 +**计数:** + +- 遍历 `nums`,记录其中 `0`、`1` 和 `2` 出现的次数。 +- 依照记录的数字,按照顺序重新填充 `nums`。 + +**双指针:** + +数组元素只存在 `0`、`1` 和 `2` 三种,因此将 `0` 移动至数组头部,`2` 移动至数组尾部,排序便完成了。 + +- 安排两个变量,分别指向数组头部与尾部。 +- 遍历数组,分三种情况: + - `0`:与头指针数值交换,并向前一步,遍历指针向前。 + - `2`:与尾指针数值交换,并向后一步。**遍历指针不变**(还需要处理交换上来的数值)。 + - `1`:遍历指针向前。 @@ -232,7 +235,7 @@ impl Solution { if n == 0 { nums.swap(i, l); l += 1; - } + } i += 1; } }