zoukankan      html  css  js  c++  java
  • 查找水王

    首先分析水王的特点,根据他的特点进行下手;

    已知水王发帖数肯定超过总帖数的一半,我们可以充分利用这个条件,

    那么如何体现出发帖数超过总帖数的一半并且遍历次数最少呢:

      这里应用抵消法来查找水王,。因为水王发帖数大于一半,无论怎么抵消,都不会小于等于0,剩下最后的id即为水王

    源代码:

    import java.util.Scanner;
    
    public class shui {
        public static void main(String[] args) {
            Scanner sca=new Scanner(System.in);
            System.out.println("请输入帖子数量:");
            int count=sca.nextInt();
            int a[]=new int[count];
            System.out.println("请输入帖子id:");
            for(int i=0;i<count;i++)
            {
                a[i]=sca.nextInt();
            }
           max(a);
        }
        public  static void max(int a[]) {//寻找水王
            int c=1;//j为某个ID出现的次数
            int max;//假设max为(水王ID)出现的次数
            max=a[0];//假设第一个数为水王ID
            for(int i=1;i<a.length;i++)
            {
                if(max!=a[i])
                {
                    c=c-1;
                    if(c<=0)    //如果j<=0,则表示max不是水王ID。因为水王发帖数大于一半,无论怎么抵消,都不会小于等于0
                    {
                        max=a[i+1];    //所有要换其他ID为水王的ID
                        c=1;        //重新定义水王ID出现次数
                        i++;
                    }
                }
                else
                {
                    max=a[i];
                    c=c+1;//统计水王帖子数
                }
            }
            System.out.println("水王的id为: "+max);
        }
    }

     

  • 相关阅读:
    BigInteger与BigDecimal
    Java常用类之时间类
    Java常用类之字符串类
    单例对象 (Singleton)设计模式
    包装类的使用
    Object 类中的主要结构
    PostgreSQL执行计划的解析
    Redis5.0 配置文件中文参考
    jvm系列(六):jvm调优-工具篇
    5,Spark中文件格式、压缩和序列化
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/10951078.html
Copyright © 2011-2022 走看看