一、题目说明

题目75. Sort Colors,给定n个整数的列表(0代表red,1代表white,2代表blue),排序实现相同颜色在一起。难度是Medium。

二、我的解答

这个是一个排序,还是简单的,代码如下:

class Solution{
public:
void sortColors(vector<int>& nums){
int num0=0,num1=0,num2=0;
for(int i=0;i<nums.size();i++){
if(nums[i]==0) num0++;
if(nums[i]==1) num1++;
if(nums[i]==2) num2++;
} for(int j=0;j<nums.size();j++){
if(j<num0) nums[j] = 0;
else if(j<num0+num1) nums[j] = 1;
else nums[j] = 2;
}
}
};

性能如下:

Runtime: 8 ms, faster than 10.95% of C++ online submissions for Sort Colors.
Memory Usage: 8.6 MB, less than 77.19% of C++ online submissions for Sort Colors.

三、优化措施

上述代码是2此遍历,其实只需要1此遍历,题目比较简单除此之外就不优化了:

class Solution{
public:
void sortColors(vector<int>& nums){
int left=0,right=nums.size()-1;
while(left<right){
while(left<right && nums[left]==0){
left++;
}
while(left<right && nums[right]==2){
right--;
}
if(left<right && nums[left]==2 && nums[right]==0){
swap(nums[left],nums[right]);
left++;
right--;
}else{
for(int t=left+1;t<=right;t++){
if(nums[t]==0){
swap(nums[left],nums[t]);
left++;
break;
}else if(nums[t]==2){
swap(nums[t],nums[right]);
right--;
break;
}else if(t==right){
swap(nums[right],nums[left]);
left++;
right--;
break;
}
}
} }
}
};

性能如下:

Runtime: 0 ms, faster than 100.00% of C++ online submissions for Sort Colors.
Memory Usage: 8.7 MB, less than 77.19% of C++ online submissions for Sort Colors.

刷题75. Sort Colors的更多相关文章

  1. [刷题] 75 Sort Colors

    要求 给只有0 1 2三个元素的数组排序 思路 方法1:遍历数组,利用辅助数组保存三个元素的个数,再写入(遍历两遍) 辅助数组有三个元素,对应0 1 2的个数 方法2:模拟三路快排,遍历一遍完成排序 ...

  2. LeetCode 75. Sort Colors (颜色分类):三路快排

    Given an array with n objects colored red, white or blue, sort them in-place so that objects of the ...

  3. 75. Sort Colors(颜色排序) from LeetCode

      75. Sort Colors   给定一个具有红色,白色或蓝色的n个对象的数组,将它们就地 排序,使相同颜色的对象相邻,颜色顺序为红色,白色和蓝色. 这里,我们将使用整数0,1和2分别表示红色, ...

  4. 75. Sort Colors - LeetCode

    Question 75. Sort Colors Solution 题目大意: 给一个数组排序,这个数组只有0,1,2三个元素,要求只遍历一遍 思路: 记两个索引,lowIdx初始值为0,highId ...

  5. 【LeetCode】75. Sort Colors (3 solutions)

    Sort Colors Given an array with n objects colored red, white or blue, sort them so that objects of t ...

  6. [LeetCode] 75. Sort Colors 颜色排序

    Given an array with n objects colored red, white or blue, sort them in-place so that objects of the ...

  7. 75. Sort Colors(中等)

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

  8. [leetcode]75. Sort Colors三色排序

    Given an array with n objects colored red, white or blue, sort them in-place so that objects of the ...

  9. leetCode 75.Sort Colors (颜色排序) 解题思路和方法

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

随机推荐

  1. pycharm out of memory 闪退

    不知道从什么时候开始,python开始报 out of memory. 把pycharm64.exe.vmoptions -Xmx 调成1024m或者2048m pycharm就打不开了 低了不能用, ...

  2. codechef Scoring Pairs

    难度 \(medium-hard\) 题意 官方中文题意 做法 很显然是可以通过计算常数个\(sum(A,B)=\sum\limits_{i=0}^A \sum\limits_{j=0}^B scor ...

  3. 优先级队列-堆-STL实现

    #include <cstdio> #include <iostream> #include <queue> using namespace std; // 默认是 ...

  4. html里面用Jquery移除tr元素后,滚动条会回到顶部问题处理

    问题如下图,删除一行后,滚动条会自动回到顶部,即使先把滚动条禁止也还是会回到顶部 参考这个 https://bbs.csdn.net/topics/392233437 发现确实自己的按钮事件写在了a标 ...

  5. 【Pyecharts可视化分享】杭州步行热门路线等~

    前言 本文包括内容如下: 杭州步行热门路线 渐变效果散点图 均是Echarts官方提供等示例,本文将会通过Pyecharts来进行实现. 杭州步行热门路线 因为代码中需要调用百度地图,所以开始之前你需 ...

  6. js参数自定义

    function test(){ //利用对象自定义参数名称 var t = {P1:"a",P2:"b"} //返回的数据 var ttt = {a:&quo ...

  7. CF1280E Kirchhoff's Current Loss

    题意 做法 考虑一个子电路图\(G\),设得到有效电阻为\(x\),费用为\(f_G(x)\),通过归纳易得\(f_G(x)\)是关于\(x\)的一个一次函数,即\(f_G(x)=k_Gx\) 考虑电 ...

  8. git三剑客笔记

    看了git三剑客视频总结的笔记,只给自己参考. 常用命令 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name ...

  9. redux基础概念及执行流程详解

    一.执行流程 全局有一个公共的容器(所有组件都可以操作),我们可以在某个组件中把全局容器中的信息进行修改,而只要全局信息修改,就可以通知所有用到该信息的组件重新渲染(类似于发布订阅)==>red ...

  10. phpstudy+phpstorm 浏览器没有解析php文件,直接显示源码

    用phpstorm编辑完项目,右键浏览器预览时页面报错:502 Bad Gateway PhpStorm 2019.1 此时默认打开的地址是:localhost:63339/开头的一长串…… 查资料说 ...