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

     

  • 相关阅读:
    mysql的导出与导入命令的使用
    kendo ui 左侧弹出分享框
    Pytorch离线安装方法
    Python单词接龙小程序
    Shell结束指定名称的进程
    Shell脚本sed命令修改文件的某一行
    Shell中单双引号的区别
    矩阵问题
    泛型通配符详解
    合并链表
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/10951078.html
Copyright © 2011-2022 走看看