leetcode-75.Sort Colors

题面

给定数组,将红-0、白-1、蓝-2,原地排序,要求相同颜色在一起。

样例

Input: [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]

算法(初级/垃圾)

遍历数组,统计0、1、2个数,在重新写入数组中。

O(n)

源码

 1 class Solution {
 2 public:
 3     void sortColors(vector<int>& nums) {
 4         int len = nums.size();
 5         if(len <= 1)
 6             return ;
 7         int count[3] = {0};
 8         for(int n : nums)
 9             count[n]++;
10         
11         int i = 0;
12         while(count[0]--)
13             nums[i++] = 0;
14         while(count[1]--)
15             nums[i++] = 1;
16         while(count[2]--)
17             nums[i++] = 2;
18     }
19 };
全部评论

相关推荐

11-03 18:50
门头沟学院 Java
迷茫的大四🐶:问就是马上到,一周五天,6个月以上,全国可飞
点赞 评论 收藏
分享
10-28 17:30
已编辑
华东交通大学 Java
iori2333:这太正常了 我字节面了四五轮 没有一次是在官网投递 都是hr主动捞
秋招笔试记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务