Menu
CoddyTech

Sort Colors

给你一个数组 nums,其中每个值都是 0、1 或 2,分别代表红色、白色和蓝色这三种颜色。请重新排列数组,让所有 0 排在最前面,然后是所有 1,最后是所有 2,并返回这个数组。不要使用库中的排序函数来解决这个问题。

函数

sortColors(nums: integer-array) → integer-array
numsinteger-array
这些颜色,每种颜色为 0、1 或 2
返回值integer-array
相同的值,先是所有 0,然后是所有 1,最后是所有 2

约束条件

  • 1 ≤ nums.length ≤ 1.5 × 104
  • 每个 nums[i] 都是 0、1 或 2。
  • 颜色可能缺失,数组中也可能只有一种颜色。

示例

输入
nums = [2, 1, 0, 2, 0, 1, 1]
输出
[0, 0, 1, 1, 1, 2, 2]
解释
数组中有两个 0、三个 1 和两个 2,所以结果正是如此:两个 0,接着是三个 1,然后是两个 2。
challenge icon

进阶

如果颜色不是三种,而是 k 种,并且 k 远小于数组的长度,你会做哪些改动?

重置代码
def sortColors(nums):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums = [2, 1, 0, 2, 0, 1, 1]

预期输出

[0, 0, 1, 1, 1, 2, 2]