这题考查 Three-Way Partition 要点是while loop条件是有等于号的
while(start <= right)
同时,了解一下Rainbow Sort的算法。
void sortColors(vector<int> &nums) {
// write your code here
if(nums.empty()) return;
int left = 0, right = nums.size()-1;
int start = 0;
while(start <= right){
if(nums[start] == 0){
swap(nums[left], nums[start]);
left++; start++;
}else if(nums[start] == 2){
swap(nums[start], nums[right]);
right--;
}else{
start++;
}
}
}