leet 75. 颜色分类
给定一个包含红色、白色和蓝色,一共 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. 颜色分类相关推荐
- 【leetcode】75.颜色分类(多种解法,超详细图文解析)
75. 颜色分类 难度中等 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,**原地**对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 ...
- Leetcode算法Java全解答--75. 颜色分类
Leetcode算法Java全解答–75. 颜色分类 文章目录 Leetcode算法Java全解答--75. 颜色分类 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 其他 题目 给定 ...
- 75. 颜色分类(C++实现)
文章目录 题目 思路--三指针 题目 题目链接:75. 颜色分类) 思路–三指针 其实颜色分类就是对 0 1 2 这三个数字进行排序,但是排序都是有效率之分的,我们希望可以通过一种高效的方法去排序这三 ...
- LeetCode - 75 颜色分类
给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色. ...
- 2021.1.9每日复习 75.颜色分类(复习快速排序)+ 77.组合(回溯算法)
***75.颜色分类(复习快速排序) class Solution {public void sortColors(int[] nums) {//方法一:冒泡排序// int n = nums.len ...
- 75. 颜色分类(荷兰国旗问题)
75. 颜色分类(荷兰国旗问题) 题目 解题思路 代码 题目 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中 ...
- LeetCode 73矩阵置零74搜素二维矩阵75颜色分类
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- leetcode菜狗入门 | 75. 颜色分类
颜色分类 题目描述 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示 ...
- LeetCode 75. 颜色分类(Sort Colors)
题目描述 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示红色.白色 ...
最新文章
- javascript 函数默认参数 只适用于 ES6
- Cognizant:走向2028年将诞生的21个新工作
- ArrayList使用方法
- MySQL5.6transportable tablespace
- JAVA Spring 简单的配置和操作 ( 创建实体类, 配置XML文件, 调试 )
- 【JZOJ4964】【GDKOI2017模拟1.21】Rhyme
- linux connect 阻塞超时时间,在linux下玩转带有超时时间的connect函数
- 程序员面试金典 - 面试题 16.16. 部分排序(排序/不排序)
- 【离散数学】基本重言蕴含式总结
- 裁员消息满天飞,我们整理了一份真实名单
- 芯片漏洞攻击出现新变种,涉及英特尔SGX技术支持的应用
- char数组转换成字符串_将字符串转换为char数组java –将字符串转换为char
- redis 失效时间单位是秒还是毫秒_redis分布式锁的这些坑,我怀疑你是假的开发...
- ubuntu 下系统监视器_Ubuntu系统监控工具
- 继明当时明月在:万历十五年
- 员工计算机耗材管理,八大秘籍教你精细化管理科室耗材!
- 大数据(7f)比较Python和Scala面向对象
- C语言程序设计笔记(浙大翁恺版) 第九周:指针
- android倒计时小工具,为五一放假倒计时《倒数日小工具》
- abaqus6.10离线版user‘smanual
热门文章
- GitHub 3.6k Satr自监督学习(Self-Supervised Learning)资源你值得拥有!
- 2021个人年度总结
- Android studio 编译项目出现Keystore was tampered with, or password was incorrect
- linux iio 设备驱动,Linux设备驱动之IIO子系统——IIO框架数据读取,linuxiio
- Rabbitmq 基础
- 微软内部泄露的 XP的KEY和无限次激活码
- Seq2Seq and NMT(基于cs224n的最全综述神经机器翻译技术)
- 《小话投行》转自2011 Morgan Stanley HK IBD唯一的大陆本科生
- Ubuntu-安装输入法
- Dline,一款让你爱不释手的去中心化社交应用