只能一个个数了,结构体这条路看来走不通
查看原帖
只能一个个数了,结构体这条路看来走不通
903497
zj_Dongxuejiang楼主2023/3/30 19:57

第一眼想用桶,桶炸了

第二眼用结构体玩一下,超时了

想着边排序,边用二分找,发现时间花的更多了,妥妥拆东墙补西墙。

#include<algorithm>
#include<iostream>
using namespace std;
struct number{
	int bh=0,count = 0;
};
bool cmp(number a,number b){
	return a.bh<b.bh;
}
int main(){
	int n ,k=0,num;
	int flag;
	number a[200001];
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>num;
		flag = 1;
		for(int j=0;j<=k;j++){
			if(num==a[j].bh){
				a[j].count++;flag = 0;
				break;
			}
		}if(flag){
			a[k].bh=num;
			a[k++].count=1;
		}
		
	}
	sort(a,a+k,cmp);
	for(int i =0;i<k;i++){
		cout<<a[i].bh<<" "<<a[i].count<<endl;
	}
}
2023/3/30 19:57
加载中...