1.练习项目:
问题描述
小蓝有一个长度为 n 的数组 a ,现在对于每一个 ai ,小蓝可以选择下面三种操作之一:
- ai=ai−1
- ai=ai+1
- ai=ai
小蓝想知道当她把每一个 ai 都操作之后,数组众数的数目最大是多少。但是小蓝并不擅长这个问题,请你帮小蓝计算所有操作完成之后数组众数的最大数目。
输入格式
第一行输入一个整数,代表 n 。
第二行输入 n 个整数,代表 a1,a2,a3,...,an。
输出格式
输出一行一个整数,代表众数的最大数目。
2.选择课程
在蓝桥云课中选择课程《16届蓝桥杯省赛无忧班(C&C++ 组)4期》,选择第STL”编程9并开始练习。
3.开始练习
(1)源码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n;
cin>>n;
priority_queue<int>pq;
map<int,int>mp;
int num;
for(int i=0;i<n;i++){
cin>>num;
mp[num-1]++;
mp[num+1]++;
mp[num]++;
}
for(const auto&pair:mp){
pq.push(pair.second);
}
cout<<pq.top()<<endl;
return 0;
}
(2)检验结果
对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。
(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。