颜色分类


给定一个包含红色、白色和蓝色,一共 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]提示:n == nums.length
1 <= n <= 300
nums[i] 为 0、1 或 2

题解

class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# 初始化三个指针 p,q,i # p指针控制红色颜色# q指针控制蓝色颜色# i指针从头到尾依次遍历p, q, i = 0, len(nums) - 1, 0while i <= q:# 当遍历到的元素等于0时, 与p指针对应的元素进行交换,并且向后移动一个元素继续比较if nums[i] == 0:nums[p], nums[i] = nums[i], nums[p] p += 1i += 1# 当便利的与元素等于2时,与q指针对应的元素进行交换# (不需要移动当前的i指针,需要再次去比较一下)原因是有可能当前元素elif nums[i] == 2:nums[q], nums[i] = nums[i], nums[q]q -= 1else:# 如果等于便利的元素等于1的时候 直接跳到下一个元素i += 1

python 三指针解决颜色分类相关推荐

  1. 按照100分制,90分以上成绩为A,80到90为B, 60到80为C,60一下为D,写一个程序, 当用户输入分数,自动转换为ABCD的形式打印,Python三种解决方法

    # method1暴力输入法: score=int(input("请输入一个分数:")) if 100>=score>=90:     print("A&qu ...

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

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

  3. 75. 颜色分类(三指针、Python)

    学习三指针的思想及应用 题目描述 文章目录 方法一:双指针(两遍循环) 方法二:三指针(一遍循环) 方法三:三指针(交换0和2) 方法一:双指针(两遍循环) 我们可以考虑对数组进行两次遍历.在第一次遍 ...

  4. [Leetcode][第75题][JAVA][颜色分类][双(三)指针][计数排序]

    [问题描述][中等] [解答思路] 1. 三指针 时间复杂度:O(N) 空间复杂度:O(1) class Solution {public void sortColors(int[] nums) {i ...

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

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

  6. python朋友圈可见_女神说不能每张照片P的同样,因此朋友圈开三天可见,用Python一步解决...

    你们好,我是小三十三,一个刚恰完午餐,正在用刷网页浪费生命的蒟蒻...python 一堆堆无聊八卦信息的网页内容慢慢使个人双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:工具 !学习 是谁 ...

  7. python正确读取文件路径的三种解决方法

    目录 一.问题需求 二.问题原因 三.解决办法 四.小思 一.问题需求 日常用程序读取文件数据等时,常常会显示一些诸如文件路径不存在等错误信息. 二.问题原因 这类问题,在python中,主要是由于 ...

  8. python输出结果存到文件拒绝访问_三步解决python PermissionError: [WinError 5]拒绝访问的情况...

    问题描述: 1.当你卸载python库的时候,如:pip uninstall pandas 2.当你想要更新python库的时候,如:pip install --upgrade pandas 等等- ...

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

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

最新文章

  1. VIEW登陆故障解决办法。
  2. ASP.NET MVC 音乐商店 - 1 创建项目
  3. js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))
  4. C# PrintDocument 打印表格
  5. asp 判断数组等于_剑指Offer(牛客版)--面试题4:二维数组中的查找
  6. SAP Commerce的extensioninfo.xml
  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(3)- 使用Json实体类构建菜单数据...
  8. BurpSuite使用——HTTP
  9. Linux selinux关闭方法和防火墙关闭方法
  10. 让Oracle跑得更快 ——博文视点大讲堂34期活动圆满结束
  11. erlang的timer定时器浅析
  12. python第四章选择题_PythonCrashCourse 第四章习题
  13. 遗传算法的c语言实现,基本遗传算法的C语言实现
  14. 《给忙碌者的天体物理学》pdf、mobi、epub下载
  15. element-ui表格编辑
  16. pytorch 画loss曲线_Python练习绘制损失曲线,Pytorch,Loss
  17. android高德地图关键字搜索,关键字搜索-POI搜索-示例中心-JS API 示例 | 高德地图API...
  18. tig - 必知的git界面化工具
  19. 数据时代程序员必备技能:数据可视化
  20. 交叉编译wpa_supplicant常见问题总结

热门文章

  1. python 笔记:csv 读写
  2. NTU 课程笔记 CE7454(2) 概率论
  3. 文巾解题 leetcode1442. 形成两个异或相等数组的三元组数目
  4. 数据中台实战(八):如何打造可以支撑N条产品线的标签平台
  5. tableau必知必会之学做直观的华夫饼图(Waffle Chart)
  6. 基于SIFT特征的全景图像拼接
  7. 算法工程师如何改进豆瓣电影
  8. 数字图像处理---有关特征提取的相关概念
  9. aws java mysql_AWS Serverless部署java api(RDS for MySQL篇)
  10. ai作文批改_全球第一份机器人批改的作文 阿里AI批改中文试卷