英雄出场王

该博客介绍了一种使用C++解决英雄联盟比赛中出场王计算的方法。通过建立映射来记录每个英雄的出场次数,遍历输入数据找出出场次数最多的英雄,并在有多个出场王时选择序号最小的一个。输入和输出格式清晰,代码简洁高效,主要考察了对C++中map数据结构的应用。
摘要由CSDN通过智能技术生成

英雄联盟总决赛正在若火如荼的展开,盲僧、刀妹、酒桶、青钢影等各路英雄悉数登场,当一个英雄被选出场时系统自动登记其序号,出场次数最多的英雄成为出场王。给定英雄序号的出场集合T,例如,T={2,4,4,4,6,7}。其出场王是4号英雄,出场次数为3。对于给定的由n个序号组成的出场集T,计算出场王序号及其出场次数。如果出现多个出场王,请输出序号最小的那个。

输入格式:

输入数据的第1行是英雄出场集T中序号个数n(n<100000000);第二行输入n个出场英雄序号。

输出格式:

输出数据的第1行给出出场王序号,第2行是出场次数。


输入样例1:

6
2 4 4 4 6 7

输出样例1:

4
3

输入样例2:

10
1234568 828 12345 898232689 12345 12345 9876 321 3 12345

输出样例2:

12345
4

考察 :  map巧妙运用

注意 :  不能用数组

思路 :  map->出现次数


C/C++ 

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
map<LL,LL> appear;
int main()
{
    LL n,num,flag,maxNum=0;
    cin >> n;
    while (n--){
        cin >> num;
        appear[num]++;
        if(appear[num]>maxNum || (appear[num]==maxNum && num<flag)){
            maxNum = appear[num];
            flag = num;
        }
    }
    cout << flag << endl << maxNum << endl;
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三块不一样的石头

十分满意,一分打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值