编码时长:11h
编码行数:500行
发表博客篇数:2
所学知识点:
1.找水王
水王是指发表内容超过总内容的一半以上
解题思路:这个问题的突破点在于一半以上,这意味着总体来看,每两片就有一篇或者以上是水王发表的,根据这个思路,来进行解题。这里用一维数组代替各用户的用户ID,运用for循环来遍历,每两个做一次比较,如果两篇不同,则在理论上删除前两篇,如果相同则暂时认为是水王 并计数number++,如果下面出现同样相同的一组,并且数字与水王不同,则number--;直至减为0,则重新认水王。最后留下的便是水王。
public class Shuiwang { public static int find(int[] array) { int size = array.length; int result = 0; int number = 0; for (int i = 0; i < size; i++) { if (number == 0) { result = array[i]; //认为array【i】是水王 number = 1; //并计数为1 } else { if (result == array[i]) //array【i】和水王相同,number++; { ++number; } else //array【i】和水王不同,则number--,直至为0,重新认定水王。 { --number; } } } return result; } public static void main(String[] args) { int[] array = { 2, 3, 2, 3, 7, 3, 9,3, 6,3, 1,3, 4,3, 10,3,3 }; System.out.println("水王的ID:"+find(array)); } }
运行结果: