首页 > 代码库 > 课堂作业之寻找水王
课堂作业之寻找水王
一、题目
有一个大“水王”,他不仅喜欢发贴,还会回复其他ID发的每个帖子。该“水王”发帖数目超过了帖子总数的一半。如果有当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的水王吗?
二、设计思想
“水王”最不怕删帖,因为他的帖子数量超过总数的一半,那么我们可以从第二个依次与上一个比较,相同的ID留下,不同的ID消除。
三、代码
package demo; import java.util.Scanner; public class FindActive { public static void main(String []args){ Scanner sc=new Scanner(System.in); System.out.print("请输入ID的个数:"); int num=sc.nextInt(); //保证输入的数合法 while(true){ if(num<=0){ System.out.print("输入的不合法!请重新输入:"); num=sc.nextInt(); } else break; } int [] arr=new int[num];//将ID号存放在数组中 int i,ii; //输入所有ID号 for(i=0;i<num;i++){ ii=i+1; System.out.print("请输入第"+ii+"个ID号:"); arr[i]=sc.nextInt(); } int king=findTheMostActive(arr,num); System.out.println("水王的ID为"+king); } public static int findTheMostActive(int array[],int len){ int king=array[0]; int t=1; for(int i=1;i<len;i++){ if(king!=array[i]){ t=t-1; if(t<=0){ king=array[i+1]; t=1; i++; } } else{ king=array[i]; t=t+1; } } return king; } }
四、结果
课堂作业之寻找水王
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。