您的位置:首页 > 编程语言 > Java开发

leetcode Sort Colors java实现

2014-03-06 15:00 176 查看
描述:给一个数组,数组由三种颜色对象组成,分别为红、白、蓝,对数组进行排序,使相同颜色的对象相邻,按照先红再白最后蓝的顺序进行排列。

在这里,我们使用整数0、1、2来分别代表红白蓝三种颜色。(不要使用库函数)

在这里我介绍一种方法不是很普及,但是这种方法的时间复杂度是0(n)。
public class Solution {
public void sortColors(int[] A) {
int count0 = 0;
int count1 = 0;
int count2 = 0;
for(int i = 0; i < A.length; i++){
if(A[i] == 0){
count0++;
}
if(A[i] == 1){
count1++;
}
if(A[i] == 2){
count2++;
}
}
for(int i = 0; i < count0; i++){
A[i] = 0;
}
for(int i = count0; i < count0+count1; i++){
A[i] = 1;
}
for(int i = count0+count1; i < count0+count1+count2; i++){
A[i] = 2;
}
}
}
以上这种方法通过系统验证了,想法很简单。分别统计出现0、1、2出现的次数,然后直接给数组赋值就ok了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: