给定一个包含红,白,蓝且长度为n的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。

我们可以使用整数0,1和2分别代表红,白,蓝。

样例
注意

不能使用代码库中的排序函数来解决这个问题

说明

一个相当直接的解决方案是使用计数排序扫描2遍的算法。

首先,迭代数组计算0,1,2出现的次数,然后依次用0,1,2出现的次数去覆盖数组。

你否能想出一个仅使用常数级额外空间复杂度且只扫描遍历一遍数组的算法?

分析:可以类似快排一样,把0都放到最左边,把2都放到最右边,中间的自然而言就为1.

代码:

class Solution{
public:/*** @param nums: A list of integer which is 0, 1 or 2 * @return: nothing*/    void sortColors(vector<int> &nums) {// write your code hereint l = 0;int r = nums.size()-1;for(int i=0;i<min((int)nums.size(),r+1);){if(nums[i]==0){if(i==l)i++;elseswap(nums[i],nums[l]);l++;}else if(nums[i]==2){swap(nums[i],nums[r]);r--;}elsei++;}}
};

LintCode-颜色分类相关推荐

  1. 82 颜色分类II-彩虹排序(Sort Colors II)

    文章目录 1 题目 2 解决方案 2.1 思路 2.2 图解 2.3 时间复杂度 2.4 空间复杂度 3 源码 1 题目 题目:颜色分类II(Sort Colors II) 描述:给定一个有n个对象( ...

  2. 《LeetCode力扣练习》第75题 颜色分类 Java

    <LeetCode力扣练习>第75题 颜色分类 Java 一.资源 题目: 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按 ...

  3. python 三指针解决颜色分类

    颜色分类 给定一个包含红色.白色和蓝色,一共 n 个元素的数组, 原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.此题中,我们使用整数 0. 1 和 2 分别表示红色.白色 ...

  4. LeetCode 73矩阵置零74搜素二维矩阵75颜色分类

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  5. 【ArcGIS风暴】ArcGIS矢量数据分层设色后导出或裁剪后颜色分类丢失完美解决办法

    在利用ArcGIS做土地利用现状图或者规划图时,事先费了好大劲把每个地类对应的图斑进行了符号化(用不同的颜色表示),后来把符号化好的数据导出,并进行加载,发现颜色分类完全丢失了,同样,在利用某个重点区 ...

  6. LeetCode--75.颜色分类(三路快排,计数排序)

    颜色分类(C) 1. 题目描述 2. 题目解析 3. C语言实现 3.1 三路快排法 3.2 计数排序法 1. 题目描述 难度:中等 2. 题目解析 这道题需要注意一下几点: 原地进行排序,不可以另外 ...

  7. 构建 Darknet 分类器 (Tiny Darknet) 训练数据集 (color recognition 颜色识别/color classification 颜色分类)

    构建 Darknet 分类器 (Tiny Darknet) 训练数据集 (color recognition 颜色识别/color classification 颜色分类) 1. CompCars_C ...

  8. (转!)利用Keras实现图像分类与颜色分类

    2018-07-19 全部谷歌渣翻加略微修改 大家将就的看哈 建议大佬们还是看看原文 点击收获原文 其中用到的示例文件 multi-output-classification 大家可以点击 下载 . ...

  9. leetcode必刷题(四)lee75 颜色分类、lee76 最小覆盖字串、lee78 子集、lee79 单词搜索、lee84 柱状图中最大的矩形、lee85 最大矩形、lee96 不同的二叉搜索树、

    lee75 颜色分类 patition 三个指针 lee76 最小覆盖字串 滑动窗口 lee78 子集 无重复数字 回溯 lee79 单词搜索 回溯 lee84 柱状图中最大的矩形 单调栈 lee85 ...

  10. opencv下使用SVM进行简单颜色分类

    在opencv下有个SVM的例子,我把那个例子改了改,试试能否对颜色进行分类,下面我给出代码! <span style="font-size:18px;">#inclu ...

最新文章

  1. 【alibaba-cloud】openfeign的使用
  2. 用 ASP.NET 开发 Web 服务的五则技巧
  3. zoj-What day is that day?
  4. Linux权限管理总结(1)--基础权限
  5. jQuery、jQury UI、jQuery Mobile----读书笔记
  6. 【Python】Python库之Web网站开发
  7. python解释器的使用
  8. Paradox of Our Times--我们这个时代的尴尬
  9. 计算机游戏程序启动错误及其解决方法汇总
  10. MAC 如何连接惠普打印机
  11. 10.23 第六次作业 刘惠惠 this关键字
  12. 塔尔萨大学计算机科学专业,塔尔萨大学专业
  13. cocos2d--仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
  14. SharePoint 2019 部署(一)
  15. matlab画收敛曲线,3.26 面收敛处理
  16. 华为云上传docker镜像
  17. 数据库服务器,sql
  18. java建立英文停用词表_pyhanlp 停用词与用户自定义词典
  19. python爬取QQ音乐免费歌曲 2020.7.26
  20. 激光雷达的厮杀18年:西方“诸神黄昏”,东方“新王隐现”

热门文章

  1. 希捷服务器硬盘15k有几代,1.5万转 希捷15K.7系列600G硬盘首测
  2. 希捷2T硬盘ST2000M001分区读不到变为RAW修复记
  3. Teclast/台电32G SM3267AC H27UDG8M2MTR 量产记录
  4. series 锐捷rgrsr20_锐捷路由器(RG-RSR20-04)清除密码的方法详解
  5. 五子棋游戏程序禁手设置算法(C语言源码)
  6. 确认计算机故障的方法,计算机常见故障及处理方法大全!
  7. WPS2005 For Linux 序列号
  8. apk逆向出来只有几百k的java_Android逆向之路---改apk包名、达到多开效果
  9. 火狐浏览器装ie tab出现问题出现组件冲突,标题栏一直显示正在连接,附加组件打不开,解决
  10. java下载服务器资源