Awang2623

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 

posted on 2019-06-02 17:40  Awang2623  阅读(136)  评论(0)    收藏  举报