zoukankan      html  css  js  c++  java
  • 找水王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]);
                
        }

    程序运行截图:

    总结:

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

  • 相关阅读:
    【剑指Offer】21、栈的压入、弹出序列
    【剑指Offer】20、包含min函数的栈
    【剑指Offer】19、顺时针打印矩阵
    【Shell编程】Shell基本语法
    【Shell编程】Shell程序设计
    linux 大中括号变量解读
    Python 二进制,十进制,十六进制转换
    Python3.x和Python2.x的区别
    python通过SSH登陆linux并操作
    PEP8特性
  • 原文地址:https://www.cnblogs.com/1443188449qq/p/5530431.html
Copyright © 2011-2022 走看看