# 颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

此题中,我们使用整数 0、 12 分别表示红色、白色和蓝色。

 

示例 1:

输入:nums = [2,0,2,1,1,0]
输出:
[0,0,1,1,2,2]

示例 2:

输入:nums = [2,0,1]
输出:
[0,1,2]

示例 3:

输入:nums = [0]
输出:
[0]

示例 4:

输入:nums = [1]
输出:
[1]

 

提示:

 

进阶:

## template ```cpp #include using namespace std; class Solution { public: void sortColors(vector &nums) { int i = 0, j = nums.size() - 1; while (i < j) { if (nums[i] == 0) { i++; continue; } if (nums[j] != 0) { j--; continue; } swap(nums[i], nums[j]); } j = nums.size() - 1; while (i < j) { if (nums[i] == 1) { i++; continue; } if (nums[j] != 1) { j--; continue; } swap(nums[i], nums[j]); } } }; ``` ## 答案 ```cpp ``` ## 选项 ### A ```cpp ``` ### B ```cpp ``` ### C ```cpp ```