leetcode-75. 颜色分类
void sortColors(vector<int>& nums) {
int p0 = 0, curr = 0;
int p2 = nums.size() - 1;
while (curr <= p2)
{
if (nums[curr] == 0)
{
swap(nums[curr], nums[p0]);
curr++;
p0++;
}
else if (nums[curr] == 2)
{
swap(nums[curr], nums[p2]);
curr;//此时不能-1,和1交换的话还要再次比较
p2--;
}
else
curr++;
}
}
若把else if改为if,则会在上步if判断后再次进行if判断,满足if条件会再次交换结果;用else if时若前面条件已满足,则直接退出当前循环,得到正确答案