题目描述:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他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)); } }
然后是截图: