1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #include <vector> using std::vector;
class Solution { public: void sortColors(vector<int> &nums) { int n = nums.size(); int red = 0, blue = n - 1; int i = 1;
while (red < blue && i <= blue) { if (nums[i] == 0) { if (i != red) std::swap(nums[i], nums[red]); else i++;
red++; } else if (nums[i] == 2) { if (i != blue) std::swap(nums[i], nums[blue]); else i++;
blue--; } else { i++; } } } };
int main() { vector<int> nums = { 2, 0, 2, 1, 1, 0 }; Solution S; S.sortColors(nums); }
|