【精】LintCode领扣算法问题答案:1393. 适龄的朋友
发布日期:2021-06-30 17:13:28 浏览次数:2 分类:技术文章

本文共 1366 字,大约阅读时间需要 4 分钟。

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; }}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

声明

本文由博客原创,转载请注明来源,谢谢~

转载地址:https://le-yi.blog.csdn.net/article/details/114266958 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【精】LintCode领扣算法问题答案:437. 书籍复印
下一篇:【精】LintCode领扣算法问题答案:1070. 账户合并

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月09日 07时03分03秒