大二下学期学习进度(十三)

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

  运行结果:

原文地址:https://www.cnblogs.com/zjl-0217/p/10970300.html