Sort Colors
Description
Input: [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]Solution
class Solution {
public:
void sortColors(vector<int>& nums) {
// all numbers before nums[l] are 0
// all numbers after nums[r] are 2
int l = 0, r = nums.size() - 1;
int i = 0;
while(i <= r){
if(nums[i] == 1) ++i;
else if(nums[i] == 0){
//swap(nums[l++], nums[i++]);
nums[i++] = nums[l];
nums[l++] = 0;
}else{
//swap(nums[r--], nums[i]);
nums[i] = nums[r];
nums[r--] = 2;
}
}
}
};Last updated