题目描述:
-
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 Mouse
{
public int weight;
public MOUSE_COLOR color;
public Mouse()
{
}
public Mouse(int weight,MOUSE_COLOR color)
{
this.weight =weight;
this.color = color;
}
}
题目给出的枚举类型
public enum MOUSE_COLOR
{
CL_RED,
CL_BLUE,
CL_BLACK,
CL_WHITE,
CL_YELLOW,
CL_PINK,
CL_GRAY
}
求解代码:
public class xiaobaishu
{
public static MOUSE_COLOR[] sortMouse(Mouse[] mouse )
{
MOUSE_COLOR[] cor=null;
if(mouse==null||mouse.length==0)
{
return null;
}
cor=new MOUSE_COLOR[mouse.length];
for (int i = mouse.length-1; i >0; i--)
{
for (int j = 0; j < i; j++)
{
if (mouse[j].weight>mouse[j+1].weight)
{
Mouse temp=mouse[j];
mouse[j]=mouse[j+1];
mouse[j+1]=temp;
}
}
}
for (int i = 0; i < mouse.length; i++)
{
cor[i]=mouse[i].color;
}
return cor;
}
}