题解 P2681 【众数】
zhangzhaoke · · 题解
思路别人已经说的很清楚了,本猫来说一下题目
众数:出现次数最多的数字
例如:1 2 3 5 6 4 5 3 3 3就是众数,因为出现的次数最多
本猫的代码
#include <iostream>
#include <algorithm>//sort头文件
using namespace std;
int a[2927],b[2927];//定义
void zhongshu(int i,int j){
for (int k=i;k<=j;k++)b[k]=a[k];//找范围,保存
sort(b+i,b+j+1);//sort排序,不会的请出门右转百度
int answer=0,tmp=1,maxx=0;//max是保留字
for (int k=i+1;k<=j;k++){
if (b[k]!=b[k-1]){
if (tmp>answer){//找最多的数
maxx=b[k-1];
answer=tmp;
}
tmp=1;//重置
}
else tmp++;//别忘了++
}
if (tmp>answer){//如果比当前最大的大,就替换
maxx=b[j];
answer=tmp;
}
cout<<maxx<<endl;//输出最多的
}
int main(){
int n,m;
cin>>n>>m;//输入
for (int i=1;i<=n;i++)cin>>a[i];//输入
for (int i=1;i<=m;i++){
int g,h,l;
cin>>g>>h>>l;//输入
if (g==0)zhongshu(h,l);//调用函数
else a[h]=l;
}
return 0;
}
华丽的结尾