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

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

进阶:
你可以不使用代码库中的排序函数来解决这道题吗?
你能想出一个仅使用常数空间的一趟扫描算法吗?

示例 1:
输入:nums = [2,0,2,1,1,0]
输出:[0,0,1,1,2,2]

示例 2:
输入:nums = [2,0,1]
输出:[0,1,2]

示例 3:
输入:nums = [0]
输出:[0]

示例 4:
输入:nums = [1]
输出:[1]

解题思路:荷兰国旗问题 快速排序问题

class Solution {// n个元素,0,1,2来表示public void sortColors(int[] nums) {// 荷兰国旗问题 target为1 process(nums,0,nums.length-1,1);}public void process(int[] nums,int l,int r,int target) {int less = l-1;int more = r+1;while(l<more){if(nums[l]<target){//小于的数swap(nums,l++,++less);}else if(nums[l]>target){// 大于的数swap(nums,l,--more);}else{// 相等 l++;}}}// 交换两数public void swap(int[] nums,int i,int j) {int temp = nums[i];nums[i]  = nums[j];nums[j]  = temp;}}

【Leetcode刷题篇】leetcode75 颜色分类相关推荐

  1. 【Leetcode刷题篇】leetcode141 环形链表II

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...

  2. 【Leetcode刷题篇】leetcode589 N叉树的前序遍历

    题目:给定一个 N 叉树,返回其节点值的前序遍历. 例如,给定一个 3叉树 : public class Leetcode589 {class Node{public int val;public L ...

  3. 小何同学的leetcode刷题笔记 基础篇(01)整数反转

    小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...

  4. LeetCode刷题专栏第一篇--思维导图时间安排

    昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...

  5. Leetcode刷题日记:21-25题篇

    Leetcode刷题日记:21-25题篇 简介 题目: 21. 合并两个有序链表 22. 括号生成 23. 合并K个升序链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 注 简介 这个系 ...

  6. 每天Leetcode 刷题 初级算法篇-打乱数组

    目录 Leetcode刷题 Leetcode刷题 /*** @program: mydemo* @description: 设计问题-打乱数组* @author: Mr.zeng* @create: ...

  7. C#LeetCode刷题-排序

    排序篇 # 题名 刷题 通过率 难度 56 合并区间 31.2% 中等 57 插入区间 30.4% 困难 75 颜色分类 48.6% 中等 147 对链表进行插入排序 50.7% 中等 148 排序链 ...

  8. C#LeetCode刷题-双指针

    双指针篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.5% 中等 11 盛最多水的容器 43.5% 中等 15 三数之和 16.1% 中等 16 最接近的三数之和 34.6% 中等 ...

  9. C#LeetCode刷题-数组

    数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组 ...

最新文章

  1. 【Appium】Appium工作原理
  2. 重载运算符作为成员函数还是非成员函数
  3. WCF学习之旅—WCF第二个示例(七)
  4. 服务器自检后显示scsi,请问一下,如何检测SCSI +RAID 5设置是否正确??
  5. cvs数据导入工具 oracle_为中国企业打造的研发项目管理工具ONES Project已支持Jira数据导入...
  6. 老年计算机音乐,老年音乐影集相机V1.2.5
  7. [LOJ]体育成绩统计 / Score (无脑模拟,没有脑子,就是上!)
  8. android 字符串特殊字符转义
  9. 430单片机实现三人投票表决器_长虹KFR-28变频空调器室内机控制板电路原理分析...
  10. 外卖平台用户端APP说明
  11. iOS常用的存储方式介绍
  12. 【JPA】字段访问、属性访问及混合访问
  13. Linux 多播(组播)例程
  14. 【Java开发规范】Float,Double,BigDecimal 精度使用注意事项
  15. Python+OpenCV:立体图像深度图(Depth Map from Stereo Images)
  16. PostgreSQL和MySQL
  17. 成都国税打造全能“电子税务局”
  18. csgo 机器人模式_csgo怎么加机器人
  19. SHU OJ 420 购买装备(假装背包,其实贪心)
  20. 数据结构和算法二十一

热门文章

  1. React直聘项目(一):客户端基本配置
  2. ps中如何让图层在画布内水平居中
  3. CSDN免费积分获得办法
  4. IAP+APP程序拼接方法
  5. 极速简单实现Android 屏幕录制编码为H264并且使用RTMP推流
  6. 钙钛矿量子点FAPbI/CsPbI3 QD 锐钛矿二氧化钛奈米晶体(HD1-HD5)
  7. 如何给微信头像加个圣诞帽
  8. 计算机初中自我介绍英文作文,计算机英文自我介绍范文
  9. ORA-00918:未明确定义列 mybatis调用分页出错
  10. git配置用户名密码、中文包