问题描述
给定一个包含红色,白色,蓝色,一同 n 个元素的数组,对其进行排序使得相同的颜色相邻并且按照 红色,白色,蓝色的顺序排序。
数组中 0 代表红色,1 代表白色,2 代表蓝色。
数组中只包含 0 1 2。
例如:
输入:[0,2,1]
返回值:[0,1,2]
输入:[0,0,2,0]
返回值:[0,0,0,2]
自己编写程序逻辑:
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param colors int整型一维数组
* @return int整型一维数组
*/
public int[] sortColor (int[] colors) {
// write code here
int i=0,tempred=0,tempwrite=0,tempblue=0;
int red=0,write=1,blue=2;
for(i=0;i<colors.length;i++){
if(colors[i]==0)
tempred++;
else if (colors[i]==1)
tempwrite++;
else
tempblue++;
}
for(i=0;i<colors.length;i++){
if(i<tempred)
colors[i]=red;
else if(i>=tempred&&i<tempwrite+tempred)
colors[i]=write;
else
colors[i]=blue;
}
return colors;
}
}