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

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

必须在不使用库的sort函数的情况下解决这个问题。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-colors

例:

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

解析:原地排序一般都是使用指针,0,1,2指针开始全部指向第一个位置。然后当等于2时直接在指针处赋值,然后指针后移一个,为1时指针处赋值1,指针2处也赋值,逻辑上就是给1腾出位置,为0时就腾出两个位置,这个自己画图比较好理解一点,画一遍就懂了。

class Solution(object):def sortColors(self, nums):""":type nums: List[int]:rtype: None Do not return anything, modify nums in-place instead."""flg0, flg1, flg2 = 0, 0, 0  # 初始化三个指针for i in range(len(nums)):if nums[i] == 0:  # 为0时nums[flg2] = 2  #后退腾出位置flg2 += 1  # 指针后移nums[flg1] = 1flg1 += 1nums[flg0] = 0flg0 += 1elif nums[i] == 1:  # 为1时nums[flg2] = 2flg2 += 1nums[flg1] = 1flg1 += 1else:  # 为2时nums[flg2] = 2flg2 += 1

颜色分类Python解法相关推荐

  1. 颜色分类python(leetcode)

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

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

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

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

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

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

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

  5. 项目:机器学习+FLD分类+python图像处理mnist数据集

    机器学习+FLD分类+python图像处理mnist数据集 ** 以mnist数据集实现Fisher Linear Discriminant(FLD)的分类以及降维功能 任务一如下所示 以下任务是te ...

  6. LeetCode 111. Minimum Depth of Binary Tree--Java, Python解法--二叉树最小高度--迭代,递归

    题目地址:Minimum Depth of Binary Tree - LeetCode Given a binary tree, find its minimum depth. The minimu ...

  7. LeetCode 226. Invert Binary Tree--反转二叉树--C++,Python解法--递归,迭代做法

    题目地址:Invert Binary Tree - LeetCode Invert a binary tree. Example: Input: 4/ \2 7/ \ / \ 1 3 6 9 Outp ...

  8. LeetCode 204. Count Primes--从一开始的质数个数--Python解法--面试算法题

    题目地址:Count Primes - LeetCode Count the number of prime numbers less than a non-negative number, n. E ...

  9. LeetCode 458. Poor Pigs--智力题「小白鼠试毒」--C++,Python解法

    题目地址:Poor Pigs - LeetCode There are 1000 buckets, one and only one of them is poisonous, while the r ...

  10. LeetCode 230. Kth Smallest Element in a BST--C++,Python解法--面试真题--找二叉树中第K小的元素

    题目地址:Kth Smallest Element in a BST - LeetCode Given a binary search tree, write a function kthSmalle ...

最新文章

  1. Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法
  2. 阻塞、非阻塞与同步、异步的区别
  3. 未找到要求的 from 关键字_性能优化|这恐怕是解释Explain关键字最全的一篇文章
  4. tensorflow 转张量类型为float_5个简单的步骤掌握Tensorflow的Tensor
  5. codeblocks使用技巧
  6. 一幅漫画揭示了项目研发过程中存在的问题,太形象了
  7. 【点阵液晶编程连载三/B】点阵LCD 的驱动与显控
  8. java swing 删除事件_java swing清除事件队列
  9. python函数中的关键字参数
  10. 越看越爽,此后统计学习不再是路人!
  11. 小型产生式系统——昆虫识别
  12. 【fiddler抓包修改订单金额】
  13. linux 编译cgal,Linux环境下CGAL配置
  14. Mybatis学习教程②
  15. idea代码编辑CPU使用率飙升100%
  16. php手册经常见到,什么是“二进制安全”?
  17. SSD硬盘SATA接口和M.2接口区别(详细)总结
  18. 漏洞检测:异常页面导致服务器路径泄漏 WASC Threat Classification
  19. drill apache_使用Apache Drill对混合模式数据进行SQL查询
  20. 非全日制计算机博士招生简章,非全日制教育博士招生简章2020

热门文章

  1. oracle自学视频
  2. 64位微型计算机64指技术指标,\\\64位微型计算机\\\中的64,是指下列技术指标中的...
  3. php 打印机样式自动对齐,虚拟打印机怎么快速设置视图样式
  4. 联想小新air13 pro重装win10时出现找不到存储设备驱动
  5. 统计学 | 八大经典思想「AI核心算法」
  6. 微信自动发消息机器人实现方法
  7. MQ消息队列简单介绍+代码
  8. 【用matlab设计仿真数字锁相放大器】
  9. MOS管功率放大器电路图与原理图文及其解析
  10. 0433-Kerberos环境下Impala Daemon在CDH5.15版本中KRPC端口27000异常分析