码迷,mamicode.com
首页 > 其他好文 > 详细

课堂作业之寻找水王

时间:2017-04-15 12:22:27      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:论坛   列表   find   比较   i++   while   课堂   logs   rgs   

一、题目

  有一个大“水王”,他不仅喜欢发贴,还会回复其他ID发的每个帖子。该“水王”发帖数目超过了帖子总数的一半。如果有当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的水王吗?

二、设计思想

  “水王”最不怕删帖,因为他的帖子数量超过总数的一半,那么我们可以从第二个依次与上一个比较,相同的ID留下,不同的ID消除。

三、代码

package demo;
import java.util.Scanner;
public class FindActive {
    public static void main(String []args){
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入ID的个数:");
        int num=sc.nextInt();
        //保证输入的数合法
        while(true){
            if(num<=0){
                System.out.print("输入的不合法!请重新输入:");
                num=sc.nextInt();
            }
            else break;
        }
        int [] arr=new int[num];//将ID号存放在数组中
        int i,ii;
        //输入所有ID号
        for(i=0;i<num;i++){
            ii=i+1;
            System.out.print("请输入第"+ii+"个ID号:");
            arr[i]=sc.nextInt();
        }
        int king=findTheMostActive(arr,num);
        System.out.println("水王的ID为"+king);
    }
    public static int findTheMostActive(int array[],int len){
        int king=array[0];
        int t=1;
        for(int i=1;i<len;i++){
            if(king!=array[i]){
                t=t-1;
                if(t<=0){
                    king=array[i+1];
                    t=1;
                    i++;
                }
            }
            else{
                king=array[i];
                t=t+1;
            }
        }
        return king;
    }
}

四、结果

技术分享

 

课堂作业之寻找水王

标签:论坛   列表   find   比较   i++   while   课堂   logs   rgs   

原文地址:http://www.cnblogs.com/hjy415/p/6713253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!