Timeline
Timeline
2026-03-17
init
Two pointers
Problem:
Two pointers
123456789101112131415161718192021222324252627282930313233343536373839404142 | using std::vector;class Solution { public: void sortColors(vector<int> &nums) { // n == nums.length // 1 <= n <= 300 // nums[i] is 0, 1, or 2 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);} |
