找水王2

题目要求:

随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

设计思路:

先找出三个不同的ID作为初始值放入数组中,分别标记次数为1,当读入的ID与数组中的ID相同时,该ID的标记次数+1,如果读入的ID与数组中的ID没有相等的的时候,查看数组中标记次数是否有为0的,如果有,该ID变为读入的ID,并把标记次数变为1;如果没有为0的标记次数,则将数组中三个标记次数都-1。最后数组中的ID就是要找的三个水王。

程序源代码:

package find_2;

public class find_2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int size=15;
        int num[][]=new int[3][2];
        int a[]=new int[size];
        a[0]=1;
        a[1]=2;
        a[2]=3;
        a[3]=4;
        a[4]=4;
        a[5]=1;
        a[6]=2;
        a[7]=3;
        a[8]=5;
        a[9]=1;
        a[10]=2;
        a[11]=3;
        a[12]=1;
        a[13]=2;
        a[14]=3;
        for(int i=0;i<3;i++)
            for(int j=0;j<2;j++)
                num[i][j]=0;
        for(int i=0;i<size;i++)
        {
            if(a[i]!=num[0][0]&&a[i]!=num[1][0]&&a[i]!=num[2][0])
            {
                if(num[0][1]==0)
                {
                    num[0][0]=a[i];
                    num[0][1]=1;    
                }
                else if(num[1][1]==0)
                {
                    num[1][0]=a[i];
                    num[1][1]=1;    
                }
                else if(num[2][1]==0)
                {
                    num[2][0]=a[i];
                    num[2][1]=1;    
                }
                else
                {
                    num[0][1]--;
                    num[1][1]--;
                    num[2][1]--;
                }
                    
                
            }
            else
            {
                if(a[i]==num[0][0])
                    num[0][1]++;
                if(a[i]==num[1][0])
                    num[1][1]++;
                if(a[i]==num[2][0])
                    num[2][1]++;
            }
        }
        System.out.println("三个水王的ID分别为:"+num[0][0]+"    "+num[1][0]+"    "+num[2][0]);
            
    }

程序运行截图:

总结:

这次的程序想了很久都没有很好的想法,虽然老师给了明确的方向朝着俩俩相消做,但是还是没有想法,最后还是上网上找到了别人的思路读懂后自己完成的,发现自己没有举一反三的想法,应该多锻炼自己。

原文地址:https://www.cnblogs.com/1443188449qq/p/5530431.html