颜色分类

题目描述

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

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

注意:
不能使用代码库中的排序函数来解决这道题。

示例:

输入: [2,0,2,1,1,0]
输出: [0,0,1,1,2,2]

解题思路

三路快排思想,大于1的放右边,小于1的放左边,等于1的不动

代码

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

leetcode菜狗入门 | 75. 颜色分类相关推荐

  1. leetcode菜狗入门 | 62. 不同路径 63. 不同路径 II

    不同路径 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图 ...

  2. Leetcode算法Java全解答--75. 颜色分类

    Leetcode算法Java全解答–75. 颜色分类 文章目录 Leetcode算法Java全解答--75. 颜色分类 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 其他 题目 给定 ...

  3. LeetCode - 75 颜色分类

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

  4. 【leetcode】75.颜色分类(多种解法,超详细图文解析)

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

  5. 75. 颜色分类(C++实现)

    文章目录 题目 思路--三指针 题目 题目链接:75. 颜色分类) 思路–三指针 其实颜色分类就是对 0 1 2 这三个数字进行排序,但是排序都是有效率之分的,我们希望可以通过一种高效的方法去排序这三 ...

  6. 2021.1.9每日复习 75.颜色分类(复习快速排序)+ 77.组合(回溯算法)

    ***75.颜色分类(复习快速排序) class Solution {public void sortColors(int[] nums) {//方法一:冒泡排序// int n = nums.len ...

  7. 75. 颜色分类(荷兰国旗问题)

    75. 颜色分类(荷兰国旗问题) 题目 解题思路 代码 题目 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中 ...

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

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

  9. leetcode —— 75. 颜色分类

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

最新文章

  1. Smokeping图表参数说明
  2. 009_CSS分组选择器
  3. Xlua文件在热更新中调用方法
  4. python-opencv图像处理之SIFT尺度不变特征变换
  5. HTML5 地理位置定位(HTML5 Geolocation)原理及应用 (调用GPS)
  6. [eclipse]Syntax error on token ;,{ expected after this token
  7. 秋意正浓,和存储大师们来一场美丽的邂逅
  8. 可变对象 vs 不可变对象(Python)
  9. xp系统打印服务器自动关闭,XP系统服务管理Print spooler自动关闭的解决办法
  10. RE文件管理器如何获取小程序APKG文件
  11. 【“科大讯飞杯”第十七届同济大学】A 张老师和菜哭武的游戏
  12. laravel 清除缓存
  13. Tegra Nano上手
  14. 深入理解 Linux 内存子系统
  15. 【计算机视觉与深度学习 北京邮电大学 鲁鹏 视频笔记】1. 线性分类器
  16. 【MATLAB】用地图表白:绘制Bonne投影下的世界地图
  17. icmp type code 对应表
  18. 新型无线充电技术:能为人体植入设备充电
  19. vue单个表单的校验清空
  20. oTMS宣布完成C1轮融资,投资方为招商局创投

热门文章

  1. 微信最多到底能添加多少好友?
  2. git log 中发现 myname@B-V1GSG8WN-0102.local 邮箱不符合要求,请务必使用公司邮箱
  3. C语言strcmp函数到底是如何比较字符串的
  4. Ant Design Vue日期选择器,禁止选择当前之前的时间
  5. trello 怎么显示卡片总数
  6. 三菱FX系列PLC编程口通信协议总览
  7. 卡尔曼滤波以后再经过低通滤波器_卡尔曼滤波:究竟滤了谁?
  8. 墨卡托坐标以及墨卡托坐标转经纬度
  9. 【案例】新浪微博短视频服务的优化实践
  10. 235. Lowest Common Ancestor of a Binary Search Tree(Tree-Easy)