#include<iostream>
#include<vector>
using namespace std;
int numFriendRequests(vector<int>& ages) {
int ans = 0;
//对于每一个年龄为 j 使得 cnt [j]++
vector<int>cnt(121);
for(int age:ages){
cnt[age]++;
}
// 前缀和
vector<int>pre(121);
for(int i = 1;i <= 120;i++){
pre[i] = pre[i-1] + cnt[i];
}
// age[y] 必须 大于 0 即 x 必须 大于 15 才满足
for(int j = 15;j <= 120;j++){
if(cnt[j]){
int inx = j * 0.5 + 7;
//有几个相同年龄就执行几次 , - 1 是不包括自己
ans += cnt[j] *(pre[j] - pre[inx] - 1);
}
}
return ans;
}
int main(){
//测试1
vector<int>test1 = {20,30,100,110,120};
vector<int>test2 = {16,17,18};
//测试2
cout << numFriendRequests(test1) << endl;
cout << numFriendRequests(test2) << endl;
return 0;
}
leetcode 适龄的朋友
最新推荐文章于 2024-11-02 20:20:37 发布