BUPT复试专题—众数(2014)

Posted Donser

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUPT复试专题—众数(2014)相关的知识,希望对你有一定的参考价值。

题目描述

有一个长度为N的非降数列,求数列中出现最多的数,若答案不唯一输出最小的数

输入

第一行T表示测试数据的组数(T<100)

对于每组测试数据:

第一行是一个正整数N表示数列长度

第二行有N个整数用空格空开,所有整数不超过10^5

输出

对于每组测试数据,输出一个整数

样例输入

2
4
1 1 1 2
5
1 1 2 2 3

样例输出

1
1

来源

2014机考A题

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
int donser(const void *a,const void *b)
{
    return *(int *)a-*(int *)b; //小到大 
}
int main()
{
    int i,t,m,d[101];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&m);
        for(i=0;i<m;i++)
        {
            scanf("%d",&d[i]);
        }
        qsort(d,m,sizeof(int),donser);
        int max=0,max_size=0;
        for(i=m-1;i>=0;i--)
        {
            int temp=upper_bound(d,d+m,d[i])-lower_bound(d,d+m,d[i]);
            if(temp>=max_size)
            {
                max_size=temp;
                max=d[i];
            }
        }
        cout<<max<<endl;
    }
    return 0;
}

 

以上是关于BUPT复试专题—众数(2014)的主要内容,如果未能解决你的问题,请参考以下文章

BUPT复试专题—网络的核(2014)

BUPT复试专题—中位数(2014-2)

BUPT复试专题—分数加法

BUPT复试专题—打牌

BUPT复试专题—List

BUPT复试专题—图像压缩存储