猿辅导老师在直播课上和同学们做游戏,让同学们在聊天区报自己的学号,每报一次可以获得一个礼物。但是老师不给报数次数超过了一定的次数的同学发礼物。现在请你来帮助老师把聊天区的报数数列处理一下。规定,当发现某个数大于 m 次时,则认定为报数过多,我们需要得到去除这些学生的报数后的报数数列。
利用unordered_map;
#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
//返回最长连续没有触发警报的课程数量
int main()
{
long n, m;
cin >> n >> m;
unordered_map<long, int> stu;
vector<long> v(n, -1);
for (int i = 0; i < n; ++i)
{
cin >> v[i];
//若stu里面没有number,就将number设置为key,关键字设置为1.表示number的次数为1
stu[v[i]]++;
}
for (int i = 0; i < n; ++i)
{
if (stu[v[i]] != 0 && stu[v[i]] <= m)
cout << v[i] << " ";
}
cout << endl;
system("pause");
return 0;
}

京公网安备 11010502036488号