1. 075
2. 算法
- O(n)
双指针:对一个包含0,1,2三个数字的数组重新排列,使得排好序的数组是0,1,2的顺序
3. 代码
class Solution{
public:
void sortColors(vector<int>& nums){
int n=nums.size();
int zeropoint=0,twopoint=n-1;
int i=0;
while(i<=twopoint){
if(nums[i]==0 && i!=zeropoint)
swap(nums[zeropoint ++],nums[i]);
else if(nums[i]==2 && i!=twopoint)
swap(nums[twopoint--],nums[i]);
else
i++;
}
}
};