(三个指针) lleetcode 75. Sort Colors
思路:三个指针。
i = 0, j = 0, k = n-1;
eg. 0 1 2 2 2 0 0 1
0 | 1 1| xxxxx| 2 2 2
需保证:
[0, i) : 0
[i, j) : 1
[j, k] : unchecked elements
(k, len-1] : 2
class Solution { public: void sortColors(vector<int>& nums) { if(nums.size()<=1) return; int i=0, j=0, k = nums.size()-1; while(j<=k){ if(nums[j] == 0){ swap(nums[i], nums[j]); i++; j++; } else if(nums[j] == 1) j++; else if(nums[j]==2){ swap(nums[j], nums[k]); k--; } } } };