力扣 | 75. 颜色分类

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

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

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

示例 1:

输入:nums = 2,0,2,1,1,0

输出:0,0,1,1,2,2

示例 2:

输入:nums = 2,0,1

输出:0,1,2

dart 复制代码
public class Problem_75_SortColors {
    public void sortColors(int[] nums) {
        int [] count = new int[3];
        for (int num:nums) {//nums的值0 1 2
            count[num]++;
        }
        int k = 0;
        for (int i = 0; i < 3; i++) {
            int num = count[i];
            for (int j = 0; j < num; j++) {
                nums[k++] = i;
            }
        }
    }
}
相关推荐
a1879272183110 小时前
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
铭哥的编程日记10 小时前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
Logic10110 小时前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z10 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode
wzdark11 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
wzdark11 小时前
多维数组在算法设计中的存储映射问题4
算法
Phil32312 小时前
多智能体不是越多越好:Google《Towards a Science of Scaling Agent Systems》论文深度解读
算法
6Hzlia12 小时前
【Classic 150 刷题计划】 LeetCode 26. 删除有序数组中的重复项 | C++ 快慢双指针经典模板
c++·算法·leetcode
huang57914712 小时前
基于滑动窗口的流式数据算法优化思路3
算法
Ulyanov12 小时前
AudioVision Pro:基于 PySide6 + sounddevice 的实时音频可视化播放器设计
python·算法·音视频