【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++;
}
}
}