给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
示例:
输入:** [2,0,2,1,1,0] 
输出: [0,0,1,1,2,2]
| 12
 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
 
 | class Solution {public:
 void sortColors(vector<int& nums)
 {
 int left=0;
 int right=nums.size()-1;
 int cur=0;
 while(cur<=right)
 {
 if(nums[cur]==0)
 {
 swap(nums[cur],nums[left]);
 
 
 
 
 left++;
 }
 else if(nums[cur]==2)
 {
 swap(nums[cur],nums[right]);
 right--;
 
 cur--;
 }
 cur++;
 }
 }
 };
 
 |