1393. 适龄的朋友
描述
有些人会提出好友请求。 给定他们的年龄列表,其中age[i]是第i个人的年龄。
如果满足以下任一条件,则A不会向B(B!= A)提出好友请求:
age[B] <= 0.5 * age[A] +7
age[B]>age[A]
age[B]> 100 && age[A] <100
否则,A会向B发起好友请求.
请注意,如果A请求B,B不一定请求A。此外,人们不会向自己发出好友请求。
总共有多少好友请求被发出?
- 1 <= ages.length <= 20000.
- 1 <= ages[i] <= 120.
样例 1:
输入:
[16,16]
输出:
2
解释:
两个人互相发出好友请求.
样例 2:
输入:
[16,17,18]
输出:
2
解释:
以下好友请求被发出 17 -> 16, 18 -> 17.
样例 3:
输入:
[20,30,100,110,120]
输出:
3
解释:
以下好友请求被发出 110 -> 100, 120 -> 110, 120 -> 100.
题解
public class Solution {
/**
* @param ages:
* @return: nothing
*/
public int numFriendRequests(int[] ages) {
//
int ans = 0;
Arrays.sort(ages);
int n = ages.length;
int startJ = n - 1;
for (int i = n - 1; i >= 0; --i) {
int minAge = (int) (ages[i] * 0.5 + 7);
if (i < n - 1
&& ages[i] != ages[i + 1]) {
startJ = i;
}
for (int j = startJ; j >= 0; --j) {
if (ages[j] > ages[i]
|| j == i) {
continue;
}
if (ages[j] <= minAge) {
break;
}
++ans;
}
}
return ans;
}
}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由二当家的白帽子博客原创,转载请注明来源,谢谢~