- 适龄的朋友
在社交媒体网站上有 n 个用户。给你一个整数数组 ages ,其中 ages[i] 是第 i 个用户的年龄。
如果下述任意一个条件为真,那么用户 x 将不会向用户 y(x != y)发送好友请求:
age[y] <= 0.5 * age[x] + 7
age[y] > age[x]
age[y] > 100 && age[x] < 100
否则,x 将会向 y 发送一条好友请求。
注意,如果 x 向 y 发送一条好友请求,y 不必也向 x 发送一条好友请求。另外,用户不会向自己发送好友请求。
返回在该社交媒体网站上产生的好友请求总数。
思路,求出每个元素对应的数量,相加求和
class Solution {
public int numFriendRequests(int[] ages) {
int res = 0;
int left = 0;
int right = 0;
int n = ages.length;
Arrays.sort(ages);
for(int age : ages){
if(age<=14){
continue;
}
while(ages[left]<=0.5*age+7){
++left;
}
while(right<ages.length-1&&ages[right+1]<=age){
++right;
}
res += right - left;
}
return res;
}
}