【题目】N只小白鼠,每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色由枚举值MOUSE_COLOR定义。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示,请按照小白鼠的重量从小到大的顺序输出他们帽子的颜色,重量相同的小白鼠,排序后位置不变。
【详细描述】/*根据重量排序后,输出帽子颜色
* 举例: 5只小白鼠,重量分别为15 30 5 9 30,帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,
* 则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GRAY。
如果没有小白鼠,输出null。
输入参数:小白鼠数组
*/
public static MOUSE_COLOR[] sortMouse(Mouse[] mouse )
{
return null;
}
【举例】
5只小白鼠,重量分别为15 30 5 9 30,帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GRAY。
public class Demo {
/*根据重量排序后,输出帽子颜色
* 举例: 5只小白鼠,重量分别为15 30 5 9 30,帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,
* 则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GRAY。
如果没有小白鼠,输出null。
输入参数:小白鼠数组
*/
-
public static MOUSE_COLOR[] sortMouse(Mouse[] mouse )
{
if(mouse==null||mouse.length==0){
return null;
}
else{
MOUSE_COLOR[] mouse_color = new MOUSE_COLOR[mouse.length];
//———–重量排序,从小到大——————-
for(int j=0;j
Mouse temp = tmp;
tmp = mouse[i];
mouse[i] = temp;
}
}
mouse[j] = tmp;
}
for(int i=0;i
public enum MOUSE_COLOR {
CL_RED,
CL_BLUE,
CL_BLACK,
CL_WHITE,
CL_YELLOW,
CL_PINK,
CL_GRAY
}
public class Mouse {
public int weight;
public MOUSE_COLOR color;
public Mouse(int weight,MOUSE_COLOR color)
{
this.weight =weight;
this.color = color;
}
}
【想法】这道题当时做的时候总共提交了三次才正确,第一次是由于局限于单元测试中给定的5只小鼠,而把数组长度限定为5,第二次是对mouse[]==null和mouse.length==0没有考虑完全。