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