数据结构和算法分析传统数据结构和算法

hdu1029(简单stl运用)

2018-01-23  本文已影响0人  42fighting

题目链接:kuangbin带你飞:基础dp专题hdu1029
这道题放在了基础dp专题,我觉得就是简单的C++的stl运用。
题意就是求出一个数列中出现次数大于等于(N+1)/2的数。用map记录每个数出现的次数,依次遍历map即可。
ac代码:

#include <bits/stdc++.h>
using namespace std;
map<int, int>mp;
int N;
int main(void)
{
    while(scanf("%d", &N)!=EOF)
    {
        mp.clear();
        int n=(N+1)/2;
        for(int i=0; i<N; i++)
        {
            int x;
            scanf("%d", &x);
            mp[x]++;
        }
        map<int, int>::iterator it;
        for(it=mp.begin(); it!=mp.end(); it++)
        {
            if(it->second>=n)
            {
                printf("%d\n", it->first);
                break;
            }
        }
    }
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读