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

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

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

示例:

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

一个直观的解决方案是使用计数排序的两趟扫描算法。
首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。
你能想出一个仅使用常数空间的一趟扫描算法吗?

class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""left, right = 0, len(nums)-1p = 0while p <= right:if nums[p] == 0:temp = nums[left]nums[left] = nums[p]nums[p] = templeft += 1p += 1elif nums[p] == 2:temp = nums[right]nums[right] = nums[p]nums[p] = tempright -= 1else:p += 1

leet 75. 颜色分类相关推荐

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

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

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

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

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

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

  4. LeetCode - 75 颜色分类

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

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

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

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

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

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

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

  8. leetcode菜狗入门 | 75. 颜色分类

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

  9. LeetCode 75. 颜色分类(Sort Colors)

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

最新文章

  1. javascript 函数默认参数 只适用于 ES6
  2. Cognizant:走向2028年将诞生的21个新工作
  3. ArrayList使用方法
  4. MySQL5.6transportable tablespace
  5. JAVA Spring 简单的配置和操作 ( 创建实体类, 配置XML文件, 调试 )
  6. 【JZOJ4964】【GDKOI2017模拟1.21】Rhyme
  7. linux connect 阻塞超时时间,在linux下玩转带有超时时间的connect函数
  8. 程序员面试金典 - 面试题 16.16. 部分排序(排序/不排序)
  9. 【离散数学】基本重言蕴含式总结
  10. 裁员消息满天飞,我们整理了一份真实名单
  11. 芯片漏洞攻击出现新变种,涉及英特尔SGX技术支持的应用
  12. char数组转换成字符串_将字符串转换为char数组java –将字符串转换为char
  13. redis 失效时间单位是秒还是毫秒_redis分布式锁的这些坑,我怀疑你是假的开发...
  14. ubuntu 下系统监视器_Ubuntu系统监控工具
  15. 继明当时明月在:万历十五年
  16. 员工计算机耗材管理,八大秘籍教你精细化管理科室耗材!
  17. 大数据(7f)比较Python和Scala面向对象
  18. C语言程序设计笔记(浙大翁恺版) 第九周:指针
  19. android倒计时小工具,为五一放假倒计时《倒数日小工具》
  20. abaqus6.10离线版user‘smanual

热门文章

  1. GitHub 3.6k Satr自监督学习(Self-Supervised Learning)资源你值得拥有!
  2. 2021个人年度总结
  3. Android studio 编译项目出现Keystore was tampered with, or password was incorrect
  4. linux iio 设备驱动,Linux设备驱动之IIO子系统——IIO框架数据读取,linuxiio
  5. Rabbitmq 基础
  6. 微软内部泄露的 XP的KEY和无限次激活码
  7. Seq2Seq and NMT(基于cs224n的最全综述神经机器翻译技术)
  8. 《小话投行》转自2011 Morgan Stanley HK IBD唯一的大陆本科生
  9. Ubuntu-安装输入法
  10. Dline,一款让你爱不释手的去中心化社交应用