寻找水王

题目描述:

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

 设计思路很简单,掺在注释里了:

package waterking;

public class WaterKing {
public static String find(String a[], int n) {
//
    String k = a[0];
//首先定义一个数组,用于存放数值
    int num = 0;
//定义num来计数
    for (int i = 0; i < n; i++) {
//定义一个循环
        if (num == 0) {

            k = a[i];

            num = 1;

        } else if (a[i] == k) {

            num++;

        } else {

            num--;

        }

    }
    //这个循环的作用是首先遍历,如果有不同的字符就消去,相同字符就让num++,这样因为水王是占一半以上的,所以消到最后剩下的就是水王,返回K值就行了。
    return k;
}


public static void main(String[] args) {

    String a[] = { "4", "7", "2", "4", "2", "3", "6", "4", "4", "3", "4", "4", "1", "4", "4", "3", "5" };
//作为参数使用的数组
    int n = a.length;
//作为循环条件的数组长度
    System.out.print("水王ID:");
//输出水王id即可
    System.out.println(find(a, n));
}
}

然后是截图:

原文地址:https://www.cnblogs.com/jyt123/p/10963302.html