hdu1029(简单stl运用)

题目链接: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;
}
    原文作者:42fighting
    原文地址: https://www.jianshu.com/p/43150e51ce21
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞