题目
- 数组由若干 0 1 2 组成
- 原地从小到达排序,不能使用 sort
思路
- 筛选出 0,swap 到开头
- 筛选出 1,swap 到中间
代码
class Solution {
public:
void sortColors(vector<int>& nums) {
int index = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == 0) {
swap(nums[i], nums[index]);
index++;
}
}
for (int i = index; i < nums.size(); i++) {
if (nums[i] == 1) {
swap(nums[i], nums[index]);
index++;
}
}
}
};