找水王

三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个水王,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该水王发帖数目超过了帖子数目的一半。

如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

1.设计思想

   因为“水王”发帖数超过了一半,将相邻两两不同的ID消除,则剩下的为“水王”的ID。用一个一维数组a[]存储所有ID,令“水王”ID为数组中的第一个a[0],用一个整型j记录水王ID出现次数,相邻数比较相同则j++,不同则j- -,并且如果j<=0,则对水王换ID,进行循环判断,直至循环结束。

2.代码实现

import java.util.*;
 2 public class ZSW {
 3
 4     public static void main(String[] args) {
 5         Scanner sca=new Scanner(System.in);
 6         System.out.println("输入帖子总数");
 7         int count=sca.nextInt();
 8         int a[]=new int[count];
 9        
10         int i,j=1,sw;//j为某个ID出现的次数,假设为sw(水王ID)出现的次数
11         System.out.println("输入帖子ID");
12         for(i=0;i<count;i++)
13         {
14             a[i]=sca.nextInt();
15         }
16         sw=a[0];//假设第一个数为水王ID
17         for(i=1;i<count;i++)
18         {
19             if(sw!=a[i])
20             {
21                 j=j-1;
22                 if(j<=0)    //如果j<=0,则表示sw不是水王ID。因为水王发帖数大于一半,无论怎么抵消,都不会小于等于0
23                 {
24                     sw=a[i+1];    //所有要换其他ID为水王的ID
25                     j=1;        //重新定义水王ID出现次数
26                     i++;
27                 }
28             }
29             else
30             {
31                 sw=a[i];
32                 j=j+1;//统计水王帖子数
33             }
34         }
35         System.out.println("水王ID是 "+sw);
36     }
37 }

3.实现截图

原文地址:https://www.cnblogs.com/clueless/p/7025752.html