统计数字·详细题解
2026-06-14 21:44:47
发布于:浙江
2阅读
0回复
0点赞
分析
这一题看上去就是用排序进行排列并统计每个数字出现了多少次,我的第一反应是用结构体。但是打了一半发现并没有很好打(但可以试试),所以不妨换个思路,先把数组进行排序(题目中输出有要求),再用一个计数器记录,如果发现有不一样的数就立刻输出并将计数器初始化(注意要从1开始,因为至少有一个数是连续的、单个的)以下是代码
上代码
#include<bits/stdc++.h>
using namespace std;
int n,a[2000005],ans=1;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n);
for(int i=2;i<=n+1;i++){
if(a[i]==a[i-1]){
ans++;
}else{
cout<<a[i-1]<<" "<<ans<<"\n";
ans=1;
}
}
return 0;
}
所以说这题重要的还是找思路,思路找对就会很顺。我前面也是一直在找思路,卡了很多次才做对。
全部评论 1
有问题欢迎提问!

1周前 来自 浙江
0








有帮助,赞一个