zoukankan      html  css  js  c++  java
  • 课堂测试——找水王

    1.题目要求:三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子,坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    2.设计思想:我设置了一个数组来存放所有帖子的ID,其中出现次数最多的就是水王的ID。从数组第一个元素开始遍历,每当遇到两个不同的ID就删除它们,最后剩下的ID即为水王的ID,因为题目关键是水王的发帖数目超过帖子数目的一半。

    3.总结:本题的关键是水王的发帖数目超过帖子数目的一半,要能够找去题目的关键,才能用简便的方法解决题目。

    4.

    public class searchwater {
        static Scanner input=new Scanner(System.in);
        //输入数组
        public static void shuru(int id[],int n) {
            
            for(int i=0;i<n;i++)
            {
                id[i]=input.nextInt();
            }
        }
        
        //每次删除两个不同的id,直到剩下的所有id都相同即为水王id
        public static int max2(int a[],int n) {
             int b=0,c=0;
                for (int i = 0; i < n; ++i)
                {
                    if(b==0||c==0)
                    {
                        b=a[i];
                        c++;
                    }
                    else if(a[i]==b)
                        c++;
                    else
                        c--;
                        
                  }
                 return b;
        }
    public static void main(String []args) {
         System.out.println("输入id个数:");
          int m=input.nextInt();
         System.out.println("请输入所有id:");
         int id[]=new int[30];
         shuru(id,m);
         int a=max2(id,m);
         System.out.println("水王的id为:"+a);
        
     }
    }

  • 相关阅读:
    一、HTML基础学习
    算法之求正整数的二进制
    JavaScript ajax返回状态
    ajax实现异步校验
    比较喜欢的一种求阶乘的方法:用递归求阶乘
    java中自定义异常类
    我对多态的理解
    包装类和基本类型区别?(integer和int取值范围一样大)
    JAVA中默认的编码方式
    抽象类和接口的区别
  • 原文地址:https://www.cnblogs.com/zwang/p/10963839.html
Copyright © 2011-2022 走看看