CodeACM
HOT 100 · 技巧 · LC 75

颜色分类:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

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

我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

必须在不使用库内置的 sort 函数的情况下解决这个问题。

输入格式

第一行输入 n,第二行输入 n 个整数。

输出格式

输出排序后的数组。

数据范围

  • 1 ≤ n ≤ 300
  • nums[i] ∈ {0,1,2}

公开样例

样例 1

输入

6
2 0 2 1 1 0

输出

0 0 1 1 2 2

三种颜色按指定顺序排列。

样例 2

输入

3
2 0 1

输出

0 1 2

每种数字各一个。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。