一、學習要點:
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--])
}
}
}
}