颜色分类—leetcode75
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
注意:
不能使用代码库中的排序函数来解决这道题。
示例:
输入: [2,0,2,1,1,0] 输出: [0,0,1,1,2,2]
进阶:
- 一个直观的解决方案是使用计数排序的两趟扫描算法。
首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。 - 你能想出一个仅使用常数空间的一趟扫描算法吗?
思路:这道题可以有很多解法,计数法,还有大不了再开一块空间初始化为全1,再依此放0,2就行了呗,所以题目有了要求,要求一趟扫描,于是双指针扫描便来了,其实也很简单,就是扫描如果当前nums[cur]是0的话就交换掉left位置本该为0的值,left++;2也类似,right--就行 ,但是要注意的是如果nums[cur]==0,而且cur==left就说明left位置已经是0了,这时候不需要交换,cur++,right++,否则会出问题哦~
class Solution {
public:void sortColors(vector<int>& nums) {int n = nums.size();int left = 0;int right = n-1;int cur = 0;while(cur<=right){if(nums[cur]==0 && cur==left){cur++; left++;}else if(nums[cur]==0){swap(nums[cur],nums[left++]);}else if(nums[cur]==2){swap(nums[cur],nums[right--]);}else{cur++;}}return;}
};
颜色分类—leetcode75相关推荐
- Leetcode75. 颜色分类
Leetcode75. 颜色分类 题目: 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. ...
- LeetCode--75.颜色分类(三路快排,计数排序)
颜色分类(C) 1. 题目描述 2. 题目解析 3. C语言实现 3.1 三路快排法 3.2 计数排序法 1. 题目描述 难度:中等 2. 题目解析 这道题需要注意一下几点: 原地进行排序,不可以另外 ...
- 《LeetCode力扣练习》第75题 颜色分类 Java
<LeetCode力扣练习>第75题 颜色分类 Java 一.资源 题目: 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按 ...
- python 三指针解决颜色分类
颜色分类 给定一个包含红色.白色和蓝色,一共 n 个元素的数组, 原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.此题中,我们使用整数 0. 1 和 2 分别表示红色.白色 ...
- LeetCode 73矩阵置零74搜素二维矩阵75颜色分类
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- 【ArcGIS风暴】ArcGIS矢量数据分层设色后导出或裁剪后颜色分类丢失完美解决办法
在利用ArcGIS做土地利用现状图或者规划图时,事先费了好大劲把每个地类对应的图斑进行了符号化(用不同的颜色表示),后来把符号化好的数据导出,并进行加载,发现颜色分类完全丢失了,同样,在利用某个重点区 ...
- 构建 Darknet 分类器 (Tiny Darknet) 训练数据集 (color recognition 颜色识别/color classification 颜色分类)
构建 Darknet 分类器 (Tiny Darknet) 训练数据集 (color recognition 颜色识别/color classification 颜色分类) 1. CompCars_C ...
- (转!)利用Keras实现图像分类与颜色分类
2018-07-19 全部谷歌渣翻加略微修改 大家将就的看哈 建议大佬们还是看看原文 点击收获原文 其中用到的示例文件 multi-output-classification 大家可以点击 下载 . ...
- leetcode必刷题(四)lee75 颜色分类、lee76 最小覆盖字串、lee78 子集、lee79 单词搜索、lee84 柱状图中最大的矩形、lee85 最大矩形、lee96 不同的二叉搜索树、
lee75 颜色分类 patition 三个指针 lee76 最小覆盖字串 滑动窗口 lee78 子集 无重复数字 回溯 lee79 单词搜索 回溯 lee84 柱状图中最大的矩形 单调栈 lee85 ...
最新文章
- mysql删除数据库恢复_详解MySQL数据库恢复误删除数据
- Grove Beginner Kits基础实验 Arduino
- windows 7装IIS
- 信道仿真java_Matlab 瑞利信道仿真
- Linux基础:Shell脚本学习
- 【spring boot基础知识】如何使用自定义配置类
- 解决li在ie,firefox中行高不一致问题
- 初学者易上手的SSH-hibernate01环境搭建
- win7下MongoDB集群告别裸奔
- 计算机资源管理器课件,资源管理器ppt课件
- 古风素材无水印免费下载
- Beyond Compare linux
- 创建Visual Studio离线升级包
- oracle中文转换为unicode,Oracle数据库字符集转换成Unicode产品开发
- 读 John Tosh 之《史学导论:现代历史学的目标、方法和新方向》
- 深度学习之文本生成图片
- 内网穿透工具--lanproxy
- python爬取百度地图_python 爬虫百度地图的信息界面的实现方法
- mysql 开启 slow log,mysql 5.5 开启慢日志slow log的方法(log_slow_queries)
- 最新款打卡抽奖助手小程序源码,带微信通知功能,去授权
热门文章
- centos 6.3 mysql python 模块_CentOS安装python2.6以及MySQL-python
- OpenGL视点跟踪物体运动
- mysql fulltext索引
- 九章算法班L3 Dynamic Programming Ⅰ
- 【Tool】Augmentor和imgaug——python图像数据增强库
- Android攻城狮Gallery和ImageSwitcher制作图片浏览器
- Web.xml配置详解之context-param(转)
- animateWithDuration
- DataGridView的DataGridViewComboBoxColumn列点击一次
- 关于“因为数据库正在使用,所以无法获得对数据库的独占访问权”的最终解决方案...