hdoj 1029 Ignatius and the Princess IV

找一个数组中出现次数多于 (N+1)/2的那个数
排个序,然后找出现次数最多的那个数

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[1000005];
int main()
{
    int n,x,y,m,mx;
    while(cin>>n){
        for(int i=0;i<n;i++) cin>>a[i];
        sort(a,a+n);
        x=a[0];y=1;
        m=0;
        for(int i=1;i<n;i++){
            if(a[i]!=x){
                if(m<y){
                    mx=x;
                    m=y;
                }
                x=a[i];
                y=1;
            }
            else y++;
        }
        if(m<y){
            mx=x;
            m=y;
        }
        cout<<mx<<endl;
    }
    return 0;
}

上一篇:跳跃游戏


下一篇:NC50995 Supermarket(set+贪心)