/******
按题目要求 原本的思路是将值作为数组下标 然后 值得范围太多 开不了数组
又输出要求从小到大 所以可以先排序后直接for一遍计算count
算法复杂度 nlogn
*******/
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef __int64 ll;
const int maxn = 200000+5;
int num[maxn]={0};
int main()
{
int i, n;
scanf("%d", &n);
for(i=0; i<n; i++) scanf("%d", &num[i]);
sort(num, num+n);
int count=1;
for(i=0; i<n; i++)
{
count = 1;
while(i+1<n && num[i+1] == num[i]) count++, i++;
printf("%d %d\n", num[i], count);
}
return 0;
}
ds 5.4 数数
最新推荐文章于 2023-12-01 23:32:39 发布