称重小白鼠

称重小白鼠   

题目标题:

  • 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_REDCL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GRAY

 

 1 package huawei;
 2 
 3 public final class Demo {
 4 
 5     /*根据重量排序后,输出帽子颜色
 6      * 举例:    5只小白鼠,重量分别为15 30 5 9 30,帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,
 7      * 则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GRAY。
 8         如果没有小白鼠,输出null。
 9     输入参数:小白鼠数组    
10         
11     */
12     public static MOUSE_COLOR[] sortMouse(Mouse[] mouse )
13     {
14         Mouse[] mouse1 = mouse;
15     
16         if(mouse==null||mouse.length==0)return null; //这个地方必须判断,而且要先判断是否为null,在判断是否为0,否则会有异常
17         
18         //直接插入算法
19         for(int i=1;i<mouse1.length;i++) //从第2个元素开始遍历,遍历n-1遍
20         {
21             
22             int j=i;
23             
24             Mouse temp = mouse1[i];
25             
26             while((j>0)&&(temp.weight<mouse1[j-1].weight)) {
27                 
28                 mouse1[j] = mouse1[j-1];
29                 j--;            
30             }        
31             mouse1[j] = temp;
32         }    
33         MOUSE_COLOR [] colors = new MOUSE_COLOR[mouse1.length];
34         
35         for(int i=0;i<colors.length;i++) {
36             
37             colors[i] = mouse1[i].color;        
38         }    
39         return colors;        
40     }    
41 }

 

 1 package huawei;
 2 
 3 public class Mouse {
 4     public int weight;
 5     public MOUSE_COLOR color;    
 6     public Mouse()
 7     {
 8         
 9     }
10     public Mouse(int weight,MOUSE_COLOR color)
11     {
12         this.weight =weight;
13         this.color = color;
14     }
15 }

 

 

 1 package huawei;
 2 
 3 public enum MOUSE_COLOR {
 4     CL_RED,
 5     CL_BLUE,
 6     CL_BLACK,
 7     CL_WHITE,
 8     CL_YELLOW,
 9     CL_PINK,
10     CL_GRAY
11 }

 

 

 

转载于:https://www.cnblogs.com/hewenwu/p/3666658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值