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

找水王

时间:2015-05-19 01:56:44      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

1.设计思想

定义一个数组输入每个帖子对应的ID号,将数组的第一个值赋给m,以后就用m记录ID号,用j记录是否为相同的ID即为计数器,通过依次对每一个帖子进行遍历,如果是ID号与m记录的ID号相同,j便增加1,否则减少1,当j减为0时,m记录的是下一个的ID号,j从1开始计数,最后剩下的最多数量的m即为水王的ID。

2.源程序

#include <iostream>
using namespace std;

void main()
{
    int a[5]={1,1,2,3,1};
    int m=a[0];

    int i,j=1;
    for(i=1;i<5;i++)
    {
        if(a[i]==m)
            j++;
        else
            j--;
        if(j==0)
        {
            m=a[i+1];
            j=1;
        }

    }
    cout<<"水王的ID号为:"<<m<<endl;
}

3.结果截图

技术分享

4.总结

刚开始看到题目的时候,一直不太清楚题目要求的是什么,后来听了老师的解释和提示,理解了题意,但是思路还没有很好的形成,不知道如何下手去解决,听了同学的讲解后,也确实是要想进行优化即时间复杂度为O(n),进行一次遍历,用一个变量作为计数器,就用相同的就增加,不同的就消掉,最后剩的那个或是数量多的就是要找的ID。还是一定要扩展自己思考问题的思路,改变角度,这样解决问题就很轻松。

 

找水王

标签:

原文地址:http://www.cnblogs.com/mxj333/p/4513473.html

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