LeetCode题解-颜色分类-Java

简介: 颜色分类-Java

取了个巧,不具备强适用性,可以参考下:

public class SortColors {
   
    public static void main(String[] args) {
   
        new SortColors().sortColors(new int[]{
   2,0,2,1,1,0});
    }
    public void sortColors(int[] nums) {
   
        int zeroCount=0;
        int oneCount=0;
        int twoCount=0;
        for (int num : nums) {
   
            if (num==0){
   
                zeroCount++;
                continue;
            }
            if (num==1){
   
                oneCount++;
                continue;
            }
            twoCount++;
        }
        writeArray(nums,0,zeroCount-1,0);
        writeArray(nums,zeroCount,zeroCount+oneCount-1,1);
        writeArray(nums,zeroCount+oneCount,zeroCount+oneCount+twoCount-1,2);
    }
    public void writeArray(int[] nums,int start,int end,int num){
   
        while (start<=end){
   
            nums[start]=num;
            start++;
        }
    }

}
目录
相关文章
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 27. 移除元素 详细解读
[Java·算法·简单] LeetCode 27. 移除元素 详细解读
23 1
|
9天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
|
1月前
|
存储 算法
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
22 0
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 392. 判断子序列 详细解读
[Java·算法·简单] LeetCode 392. 判断子序列 详细解读
26 0
|
10天前
|
Java 调度
Java中常见锁的分类及概念分析
Java中常见锁的分类及概念分析
15 0
|
1月前
|
算法 Java
[Java·算法·中等] LeetCode15. 三数之和
[Java·算法·中等] LeetCode15. 三数之和
30 0
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
21 0
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
20 0
|
1月前
|
算法 Java 索引
[Java·算法·简单] LeetCode 141. 环形链表 详细解读
[Java·算法·简单] LeetCode 141. 环形链表 详细解读
23 0