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

寻找“水王”问题

时间:2015-05-21 21:45:48      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

一、设计思路:因为需要只遍历一遍就要找到”水王“,所以不能通过排序算法。又因为”水王“发帖数占总帖子数的一半以上,所以可以通过计算差值的方法找出”水王“。设定一个变量n为水王与其他人发帖数量的差值。先假设水王的ID为第一个人的ID,开始遍历,若该帖子的ID与“水王“相同,则n+1,若该帖子的ID与“水王“不同,则n-1。当n<0时,“水王”的ID变为当前帖子的ID。遍历完成后,就找到“水王”的ID与水王发帖数与其他人发帖数的差值。

二、代码

public class main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String a[]=new String[]{"ab","ab","ab","b","ab","ab","abc","bc","ab","a"};
        String b=a[0];
        int i=0,n=0;
        for(i=0;i<10;i++)
        {
            if(a[i]==b)
            {
                n=n+1;
            }
            else
            {
                n=n-1;
                if(n<0)
                {
                    b=a[i];
                    n=1;
} } } System.out.print(b); } }

三、结果截图

技术分享

四、总结:这次这个问题实现并不是很难,难的是设计的算法如何只执行一次遍历。通过这种比较差值的方法可以比较快速的找到发帖最多的"水王",并且十分简单。

寻找“水王”问题

标签:

原文地址:http://www.cnblogs.com/act-gh95/p/4520529.html

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