• 查找水王


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

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

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

      这里应用抵消法来查找水王,。因为水王发帖数大于一半,无论怎么抵消,都不会小于等于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);
        }
    }

     

  • 相关阅读:
    ubuntu 启动 卡死在 clean ... file ... blocks
    realsense opencv example 运行时无显示退出
    realsense example 最简单编译
    python内置方法
    接口自动化测试框架
    git使用问题
    自动化测试工具原理
    四层协议网络传输
    字符串反转
    排除链接数性能瓶颈
  • 原文地址:https://www.cnblogs.com/sengzhao666/p/10951078.html
Copyright © 2020-2023  润新知