找水王2
题目:随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。
据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
设计思路:将水王存储为一个数组,遍历数组,数组前三个不一样的id作为默认水王,通过遍历下一个不一样id消除前三个水王,通过不一样的四个id相消来得到最后的三个id,就是最后要得到的水王
代码
import java.util.*; public class Findwater1 { public static void main(String args[]) { Scanner sc=new Scanner(System.in); System.out.println("请输入ID的个数:"); int a=sc.nextInt(); int ID[]=new int[a]; System.out.println("请输入ID"); for(int i=0;i<a;i++) { ID[i]=sc.nextInt(); } int idnull = -1;//定义一个不存在的ID int num[]=new int[3];//定义比较的数组 int water[]=new int[3];//定义水王的数组 water[0]=water[1]=water[2]=0; num[0]=num[1]=num[2]=idnull; for(int i=0;i<a;i++) { if(ID[i]==num[0]) { water[0]++; } else if(ID[i]==num[1]) { water[1]++; } else if(ID[i]==num[2]) { water[2]++; } else if(water[0]==0) { water[0]=1; num[0]=ID[i]; } else if(water[1]==0) { water[1]=1; num[1]=ID[i]; } else if(water[2]==0) { water[2]=1; num[2]=ID[i]; } else { water[0]--; water[1]--; water[2]--; } } System.out.println("三个水王分别是:"); System.out.println(num[0]); System.out.println(num[1]); System.out.println(num[2]); } }