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

一、设计思路

因为水王的发帖数超过总帖数的一半,所以采用两两相消的方法(两个相同的留下,两个不同的消去),则剩下最多的就是水王

二、源代码

package test;
import java.util.Scanner;

public class shuiwang {
    public static void main(String args[]){
        int length;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入总帖数:");
        length = sc.nextInt();
        String ID[] = new String[length];
        System.out.println("请输入发帖者的ID:");
        for(int i=0;i<length;i++)
        {
            ID[i] = sc.next();
        }
         
        String id=ID[0];
        int t=0;
        for(int i=0;i<length;i++)
        {
            if(id.equals(ID[i]))
            {
                t+=1;
            }
            else
            {
                t-=1;
            }
            if(t==0)
            {
                id=ID[i];
                t=1;
            }
        }
        System.out.println("水王的ID是:"+id);
    }
}

三、结果截图

 

四、个人总结

主要是通过两两相消的方法完成代码的实现