首页 > 其他 > 详细

统计频率----初始条件的设置

时间:2017-02-13 15:16:32      阅读:180      评论:0      收藏:0      [点我收藏+]

给定一个n,输入n个数,输出这n个数中出现频率最多的数的值及出现频率。频率相同时,取较大值。

这里用map可以轻松解决。但是wa了无数次。。。。。

原来是初值设置错了。0x3fffffff可以做为正数的INF,但是-0x3fffffff不行,,,,-0xfffffff则是1,不明觉吊。

改了初始的key和val就过了

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
    map<int,int> a;
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int tmp;
        cin>>tmp;
        a[tmp]++;
    }

    map<int,int>::iterator it;
    int key=a.begin()->first;
    int val=a.begin()->second;
    for(it=a.begin();it!=a.end();it++)
    {
        //cout<<it->first<<endl;
        if(it->second>=val)
        {
            val=max(val,it->second);

            if(it->second==val)
                key=max(key,it->first);
            else
                key=it->first;
        }
    }
    printf("%d %d\n",key,val);
    return 0;
}

 

统计频率----初始条件的设置

原文:http://www.cnblogs.com/superxuezhazha/p/6393750.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!