码迷,mamicode.com
首页 > 其他好文 > 详细

课堂练习-找多个水王

时间:2016-05-27 16:15:45      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

一、设计思路

     大致还是和上一个练习相同,也使用了消除法。

     定义一个专门用来你叫的ID数组,数量即为水王数量:compareID[],再定义一个用来计数的数组,且初始化都为0:int time[]={0,0,0},然后利用循环,使不同的三个ID储存在compareID[]数组里,然后依次比较,没有相同的ID,对应的计数数组+1,遇到和三个都不相同的ID,则整体计数数组-1,相当于消除,当计数数组重新变为0时,则重新往compareID[]数组里赋下一个ID。最后遍历完后,compareID[]数组便是那三个水王。

二、代码

 1 //好水王(多)
 2 
 3 public class KT_523 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         
 8         int ID[]={1,4,1,2,2,3,3};//定义ID数组,储存所有ID
 9         
10         int n=ID.length;//ID数量
11         
12         Findmanywaterking(ID,n);
13 
14     }
15     
16     //定义方法
17     static void Findmanywaterking(int[] ID,int n)
18     {
19         int compareID[]=new int[3];//储存三个不同的ID,用来和其他ID比较
20         int time[]={0,0,0}; //储存比较次数
21         
22         //算法
23         for(int i=0;i<n;i++)
24         {
25             if(compareID[0]==ID[i])
26             {
27                 time[0]++;
28             }
29             else if(compareID[1]==ID[i])
30             {
31                 time[1]++;
32             }
33             else if(compareID[2]==ID[i])
34             {
35                 time[2]++;
36             }                                 //储存每个比较ID出现的次数
37             else if(time[0]==0)
38             {
39                 compareID[0]=ID[i];
40                 time[0]=1;
41             }
42             else if(time[1]==0)
43             {
44                 compareID[1]=ID[i];
45                 time[1]=1;
46             }
47             else if(time[2]==0)
48             {
49                 compareID[2]=ID[i];
50                 time[2]=1;
51             }                                 //当计数出现0,则重新赋下一个ID
52             //有和比较ID不同ID则消除,并且在每个计数上减一
53             else 
54             {
55                 time[0]--;
56                 time[1]--;
57                 time[2]--;
58             }
59         }
60         //输出打印
61         System.out.print(
62                 "三个水王分别是:"+compareID[0]+","+compareID[1]+","+compareID[2]+"。");        
63     }
64     
65 }

三、截图

技术分享

课堂练习-找多个水王

标签:

原文地址:http://www.cnblogs.com/weiyao/p/5534685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!