题目如下

数据范围

两趟扫描第一趟统计0 1 2的个数,
第二趟直接原地修改。
通过代码
class Solution {
public:
void sortColors(vector<int>& nums) {
int a = 0,b = 0,c = 0;
int n = nums.size();
for(int i = 0;i < n;i++){
if(nums[i] == 0)a++;
else if(nums[i] == 1)b++;
else c++;
}
for(int i = 0;i < a;i++)nums[i] = 0;
for(int i = a;i < a + b;i++)nums[i] = 1;
for(int i = a + b;i < n;i++)nums[i] = 2;
}
};

547

被折叠的 条评论
为什么被折叠?



