一、学习要点:
1.定义red指针指向开头位置,blue指针指向末尾位置;
2.从头开始遍历原数组,如果遇到0,则交换该值和red指针指向的值,并将red指针后移一位。若遇到2,则交换该值和blue指针指向的值,并将blue指针前移一位。若遇到1,则继续遍历;
二、代码:
class Solution
{
public:
void sortColors(vector<int>&,nums)
{
int red=0,blue=nums.size()-1;
for(int i=0;i<=blue;i++)
{
if(nums[i]==0)
{
swap(nums[i],nums[red++]);
}else if(nums[i]==2)
{
swap(nums[i--],nums[blue--])
}
}
}
}