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);
        }
    }

     

  • 相关阅读:
    Java 工程转 C#
    初涉Linux ----------> 打造自己的 Vim IDE
    初涉Linux ----------> Ubuntu15.04的安装与美化
    没学过CSS等前端的我,也想美化一下自己的博客
    作为程序员之 Vim(一)
    win7升win10,初体验
    作为程序员之正则表达式
    数据库系统原理
    Mysql数据库笔记
    我的个人常用快捷键
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/10951078.html
Copyright © 2011-2022 走看看