找水王

题目:

三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其

他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖

子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

代码:

package 找水王;
import java.util.Scanner;
public class find 
{        
       public static void main(String[] args) 
       {              
             int i,Number;
             System.out.println("请输入帖子总数:");
             Scanner in=new Scanner(System.in);
             Number=in.nextInt();
             int array[]=new int[Number];
             System.out.println("请输入帖子的ID");
             Scanner t=new Scanner(System.in);
             for(i=0;i<Number;i++)     //给数组赋值
             {
                 array[i]=t.nextInt();
             }
             System.out.println(find(array,Number));
       }         
      public static int find(int[] array, int n) 
      {             
        int candidate = 0;    //要找的id              
        int nTimes = 0;   //要找的id出现的次数              
        for(int i = 0; i < n; i++) 
        {                  
            if(nTimes == 0) 
            {  //如果次数变为0,则重新指定candidate  
                 candidate = array[i];                 
                 nTimes = 1;                  
            } 
            else 
            {                      
               if(candidate == array[i]) 
              {  //如果candidate和array[i]的值相等,那么candidate出现的次数可以加1                         
                  nTimes++;                     
               } 
              else 
              {                         
                  nTimes--;    //如果不相等,那么candidate出现的次数减1           
              }            
            }         
         }             
         return candidate;  
     }  
}  

截图:

原文地址:https://www.cnblogs.com/bailanglang/p/6759965.html