lc75-Sort Colors

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
void sortColors(vector<int>& nums) {
int l = 0, r = nums.size()-1;
int i = 0;
while (i <= r) {
while(nums[r] == 2) r--;
while(nums[l] == 0) l++;
while (nums[i] == 2 && i < r) {
swap(nums[i], nums[r--]);
}
while (nums[i] == 0 && i > l) {
swap(nums[i], nums[l++]);
}
i++;
}
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
void sortColors(vector<int>& nums) {
int l = nums.size();
int a[3] = {0,0,0};
for (int i = 0; i < l; i++) {
a[nums[i]]++;
}
for (int i = 0; i < a[0]; i++) {
nums[i] = 0;
}
for (int i = a[0]; i < a[0]+a[1]; i++) {
nums[i] = 1;
}
for (int i = a[0]+a[1]; i < l; i++) {
nums[i] = 2;
}
}
};