有三种颜色,给他们排序,不用一般的排序算法。
由于只有三种数字,所有可以直接统计,然后再依次赋值即可。
class Solution {
public:
void sortColors(vector<int>& nums) {
int temp[3];
temp[0]=temp[1]=temp[2]=0;
for(int ii=0;ii<nums.size();ii++){
if(nums[ii]==0)temp[0]++;
else if(nums[ii]==1)temp[1]++;
else temp[2]++;
}
int cnt=0;
while(temp[0]){
nums[cnt++]=0;
temp[0]--;
}
while(temp[1]){
nums[cnt++]=1;
temp[1]--;
}
while(temp[2]){
nums[cnt++]=2;
temp[2]--;
}
return ;
}
};