【LeetCode每日一题】[中等]75. 颜色分类[补]

【LeetCode每日一题】[中等]75. 颜色分类

75. 颜色分类

题目来源
算法思想:“荷兰国旗问题”,数组计数排序,指针

题目:
在这里插入图片描述

使用的方法:计数排序,统计0,1,2的个数,然后重写数组

java代码

class Solution {
    
    
    public void sortColors(int[] nums) {
    
    
		int zero = 0;//0的个数
		int one = 0;//1的个数
		int two = 0;//2的个数
		//第一次遍历.统计0,1,2的个数
		for (int i = 0; i < nums.length; i++) {
    
    
			if(nums[i] == 0) {
    
    
				zero++;
			}
			if(nums[i] == 1) {
    
    
				one++;
			}
			if(nums[i] == 2) {
    
    
				two++;
			}
		}
		int index = 0;
		//第二次遍历,根据个数,重写数组
		while(index < nums.length) {
    
    
			if(index < zero) {
    
    
				nums[index] = 0;
			}
			else if(index < zero + one) {
    
    
				nums[index] = 1;
			}
			else {
    
    
				nums[index] = 2;
			}
            index++;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_39457586/article/details/108964825
今日推荐