首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏宇宙之_一粟

    颜色分类

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

    83131发布于 2020-10-26
  • 来自专栏杀马特

    颜色分类问题

    思路: 创建两个指针分别找0和2并完成就位操作,利用遍历数组找到2可以缩小遍历右界的遍历范围,

    13400编辑于 2025-01-23
  • 来自专栏五分钟学算法

    颜色分类( LeetCode 75 )

    一、题目描述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 二、题目解析 设置 3 个索引,left 指向数组的开始位置,right 指向数组的结束位置,index 指向数组的开始位置。 登录 AlgoMooc 官网获取更多算法图解 // https://www.algomooc.com/567.html // 作者:程序员吴师兄 // 代码有看不懂的地方一定要私聊咨询吴师兄呀 // 颜色分类 登录 AlgoMooc 官网获取更多算法图解 // https://www.algomooc.com/567.html // 作者:程序员吴师兄 // 代码有看不懂的地方一定要私聊咨询吴师兄呀 // 颜色分类 # 登录 AlgoMooc 官网获取更多算法图解 # https://www.algomooc.com/567.html # 作者:程序员吴师兄 # 代码有看不懂的地方一定要私聊咨询吴师兄呀 # 颜色分类

    76630编辑于 2021-12-27
  • 来自专栏脑洞前端

    颜色分类

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

    48420发布于 2019-10-28
  • 来自专栏全栈程序员必看

    leetcode 颜色分类_LEETCODE

    给定一个包含红色、白色和蓝色,一共 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 = vector<int>& nums) { int l = 0,r = nums.size() - 1; quick(l,r,nums); } }; 因为只有3组数字

    44520编辑于 2022-09-22
  • 来自专栏软件工程

    颜色分类

    思路: 看到这样的按数字分类,第一时间感觉应该用排序,这样的话就直接按大小分好了。但是要求不用排序,且一遍扫描,就算了。 index1]; nums[index1] = nums[index2]; nums[index2] = temp; } } 思路3代码

    29110编辑于 2021-12-23
  • 来自专栏蛮三刀的后端开发专栏

    Sort Colors颜色分类

    题目大意 给出一个由红、白、蓝三种颜色组成的数组,把相同颜色的元素放到一起,并整体按照红、白、蓝的顺序。用0表示红色,1表示白色,2表示蓝色。这题也称为荷兰国旗问题。 解题思路 参考: https://shenjie1993.gitbooks.io/leetcode-python/075%20Sort%20Colors.html 三指针:如果只有两种颜色,那么很容易想到一前一后两个指针向中间遍历 ,颜色不对就交换位置。 三种颜色仍然可以这么做,只不过要多一个指针,前后两个指针用来分隔已经排好的红色和蓝色,中间的指针来遍历元素: 如果是红色,那么和前指针交换,并两个一起向后移,前指针换过来的一定是白色的,因为中指针已经扫描过那些元素了 如果是白色,那么继续向后移 如果是蓝色,那么和后指针交换,后指针向前移,中指针不能后移,因为此时不确定换过来的元素是什么颜色 代码 class Solution(object): def

    81010发布于 2019-03-26
  • 来自专栏张伦聪的技术博客

    分类颜色

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

    31820编辑于 2022-10-26
  • 来自专栏后端Coder

    LeetCode148|颜色分类

    一,颜色分类 1,问题简述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 2,示例描述 示例 1: 输入:nums = [2,0,2,1,1,0] 输出:[0,0,1,1,2,2] 示例 2: 输入:nums = [2,0,1] 输出:[0,1,2] 示例 3: 输入: [0] 输出:[0] 示例 4: 输入:nums = [1] 输出:[1] 提示: n == nums.length 1 <= n <= 300 nums[i] 为 0、1 或 2 3

    32420发布于 2021-01-15
  • 来自专栏mathor

    LeetCode75.颜色分类

    这道题两种做法,一种是用计数排序,因为告诉了你只有3种数字,所以直接创建一个长度为3的数组arr,然后遍历一遍原数组,每出现一次某个数,arr对应位置的值就加加。 最后依次输出arr即可 class Solution { public void sortColors(int[] nums) { int[] arr = new int[3]; for(int i = 0;i < nums.length;i++) arr[nums[i]]++; for(int i = 0,j = 0;i < 3;

    39820发布于 2018-08-17
  • 来自专栏Java学习驿站

    颜色分类

    i = 3 0 2 2 1 1 0 p0,p1 i 此时 i 所在位置的数为 1 ,则与 p1 进行交换,结果如下: 0 1 2 2 1 0 p0 p1 i 在这里可以推一下,假如上边遇到 颜色分类

    32220编辑于 2022-06-17
  • 来自专栏全栈程序员必看

    leetcode 颜色分类_leetcode难度

    给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 示例 1: 输入:nums = [2,0,2,1,1,0] 输出:[0,0,1,1,2,2] 示例 2: 输入:nums = [2,0,1] 输出:[0,1,2] 示例 3: 输入:nums = vector<int>& nums) { int l = 0,r = nums.size() - 1; quick(l,r,nums); } }; 因为只有3组数字

    36130编辑于 2022-09-22
  • 来自专栏后端知识体系

    LeetCode-75-颜色分类

    # LeetCode-75-颜色分类 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 # 解题思路 方法1、计数排序: 初始化max+1容量的桶,将数组值为下标的元素放入对应的桶内,并进行计数,如nums[2]=3,则bucket[3]+1。

    60110编辑于 2022-07-14
  • 来自专栏健程之道

    力扣75——颜色分类

    原题 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 原题url:https://leetcode-cn.com/problems/sort-colors/ 解题 两趟扫描 我当时想到的第一种想法就是排序,后来感觉没有必要,因为只有3种元素,我完全就可以按照进阶提示中的第一条 让我们来看看代码: class Solution { public void sortColors(int[] nums) { // 利用3个指针current、p0、p2

    46810发布于 2019-12-31
  • 来自专栏用户画像

    Leetcode No.75 颜色分类

    一、题目描述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 示例 1: 输入:nums = [2,0,2,1,1,0] 输出:[0,0,1,1,2,2] 示例 2: 输入:nums = [2,0,1] 输出:[0,1,2] 示例 3: 输入:nums =

    41030发布于 2021-11-29
  • 来自专栏freesan44

    颜色分类(JAVA)

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

    91220发布于 2020-06-18
  • 来自专栏叶子的开发者社区

    【LeetCode热题100】【技巧】颜色分类

    颜色分类 - 力扣(LeetCode) 只需排序三种,可以记录0和1的个数,然后直接原地赋值 class Solution { public: void sortColors(vector<int

    14210编辑于 2024-04-08
  • 来自专栏程序IT圈

    ​LeetCode刷题实战75:颜色分类

    今天和大家聊的问题叫做 颜色分类,我们先来看题面: https://leetcode-cn.com/problems/sort-colors/ Given an array nums with n objects 题意 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 因为元素只有3个值,互相之间的大小关系也就只有那么几种,排序完全没有必要。比较容易想到,我们可以统计一下这三个数值出现的次数,几个0几个1几个2,我们再把这些数拼在一起,还原之前的数据不就可以了吗? Do not return anything, modify nums in-place instead. """ bucket = [0 for _ in range(3) 既然颜色只有三种,那么当我们排完序之后,整个数组会被分成三个部分,头部是0,中间是1,尾部是2。 我们可以用一个区间来收缩1的范围,假设我们当前区间的首尾元素分别是l和r。

    38430发布于 2021-01-20
  • 来自专栏Michael阿明学习之路

    颜色分类(双指针)

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

    53820发布于 2020-07-13
  • 来自专栏全栈学习

    前端算法专栏-数组-75.颜色分类

    接下来会分类给大家分享常考算法题目。很多朋友也是看着这套系列算法拿到很多offer!所以也是想分享给更多朋友,帮助到有需要的朋友。分类数组-三路快排题目75.  颜色分类给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地**对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 0,1,2]解释1.定义一个变量zero,初始值为-1,zero变量用来表示0...zero区间全部放0 2.定义一个变量two,初始值为数组的长度,two变量用来表示two...n-1区间全部放2 3.

    41620编辑于 2023-11-29
领券