找水王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]);
    }
}

原文地址:https://www.cnblogs.com/wanggang-java/p/5536489.html