版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/smmyy022/article/details/83341172
题解
看似简单,其实也简单,就是出题人故意挖了坑等你跳。
第一坑,冗余条件3,和2一个意思。
第二坑,排序无能,爆时间。
躲了这俩坑就基本明白了,就是桶排序。
ps: 我的代码还可以优化,可以再缩减遍历的空间。
Code
int cot[121];
int numFriendRequests(vector<int>& ages) {
int n = ages.size();
for(int i=0;i<=120;i++) cot[i]=0;
int big=-1;
for(int age:ages){
cot[age]++;
big=max(age,big);
}
int res=0;
for(int i=0;i<=big;i++){
if(cot[i]!=0){
for(int j=0;j<i;j++){
if(cot[j]==0) continue;
else if(j>(i/2+7)) res+=cot[j]*cot[i];
}
if(i>14) res+= cot[i]*(cot[i]-1);
}
}
return res;
}