题目:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其
他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖
子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
代码:
package 找水王; import java.util.Scanner; public class find { public static void main(String[] args) { int i,Number; System.out.println("请输入帖子总数:"); Scanner in=new Scanner(System.in); Number=in.nextInt(); int array[]=new int[Number]; System.out.println("请输入帖子的ID"); Scanner t=new Scanner(System.in); for(i=0;i<Number;i++) //给数组赋值 { array[i]=t.nextInt(); } System.out.println(find(array,Number)); } public static int find(int[] array, int n) { int candidate = 0; //要找的id int nTimes = 0; //要找的id出现的次数 for(int i = 0; i < n; i++) { if(nTimes == 0) { //如果次数变为0,则重新指定candidate candidate = array[i]; nTimes = 1; } else { if(candidate == array[i]) { //如果candidate和array[i]的值相等,那么candidate出现的次数可以加1 nTimes++; } else { nTimes--; //如果不相等,那么candidate出现的次数减1 } } } return candidate; } }
截图: