一、实验题目:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
二、解决思路
使用老师上课时的思路,从头遍历所有ID,相同ID留下,不同ID消除,这样最后剩下的ID就只剩水王的。
三、代码
1 //找水王 2 3 import java.util.Scanner; 4 public class KT_516 { 5 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 Scanner in =new Scanner(System.in); 9 10 System.out.println("请输入ID个数:"); 11 int a=in.nextInt(); 12 int b[]=new int[a]; 13 System.out.println("请输入ID:"); 14 for(int i=0;i<a;i++) 15 { 16 b[i]=in.nextInt(); 17 } 18 19 int waterking=b[0]; 20 int k=1; 21 for(int i=1;i<a;i++) 22 { 23 if(waterking!=b[i])//判断前后两个ID是否相同 24 { 25 k=k-1; 26 if(k<=0) 27 { 28 waterking=b[i+1]; 29 k=1; 30 i++; //不同,消除后,i直接跳转后一个 31 } 32 } 33 else 34 { 35 waterking=b[i]; //相同后,两个数字并为一个,继续比较 36 k=k+1; 37 } 38 } 39 40 System.out.println("水王为"+waterking); 41 42 } 43 44 }
四、截图