1,题目:三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
思路:这个题目最重要的一点在于水王发帖数大于总帖数的一半,所以我的想法如下:将所有人的id存入一个数组中,循环两个变量id(水王的id)和相同id出现的次数c,第一个和第二个进行比较如果相同c加一反之c减一,因为水王的发帖数大于一半,所以他的ID会有相同的进行补充,而其他的没有这么多补充,所以到最后水王一定是正数,由此得到。
package 水王; import java.util.Scanner; public class shuiwang { public static void main(String[] args) { int[] a = null;//存储帖子id Scanner sc = new Scanner(System.in); System.out.println("请输入帖子总个数:"); int sum = sc.nextInt(); a = new int[sum]; System.out.println("输入每个帖子的id:"); for(int i = 0;i < sum;i++) { a[i] = sc.nextInt(); } sc.close(); int id = 0; int c=0; for(int i=0;i<a.length;i++) { if(c==0) { id=a[i]; c=1; }else if(c>0){ if(a[i]==id) { c=c+1; }else if(a[i]!=id){ c=c-1; } } } System.out.println("水王的ID为 : " + id); } }