The Dutch National Flag Problem
The Dutch National Flag Problem
Solution: Applying Quicksort Thinking
Use three pointers to solve this cleanly.
void sortColors(vector<int>& nums) {
for(int begin=0,cur=0,end=nums.size()-1;cur<=end;) {
if (nums[cur]==0)
swap(nums[cur++], nums[begin++]);
else if (nums[cur]==1)
++cur;
else
swap(nums[cur], nums[end--]);
}
}#three-pointers