编码时长: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));
}
}
运行结果: