// 1. 保持[0, left)为0
// 2. 保持(right, nums.size() - 1]为2
// 如果做到以上两点, [left, right]必为1
class Solution {
public:
void sortColors(vector<int>& nums) {
int size = nums.size();
int l = 0, r = size - 1;
for(int i = 0; i <= r;){
if(nums[i] == 1){
i++;
continue;
}else if(nums[i] == 0){
swap(nums[i], nums[l]);
l++;
i++;
}else{
swap(nums[i], nums[r]);
r--;
}
}
}
};