欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【Leetcode】825. Friends Of Appropriate Ages

发布时间:2023/12/20 编程问答 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Leetcode】825. Friends Of Appropriate Ages 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目地址:

https://leetcode.com/problems/friends-of-appropriate-ages/

给定nnn个人的年龄,当满足以下要求的时候aaa不会给bbb发消息:
1、b≤0.5a+7b\le 0.5a+7b0.5a+7
2、b>ab>ab>a
3、b>100∧a<100b>100 \land a<100b>100a<100
其余情况aaa都会给bbb发消息(自己不会发给自己)。问总共会发多少消息。题目保证所有年龄都是1∼1201\sim 1201120的整数。

当满足b≤ab\le aba的时候条件333是不会发生的。所以只需要判断前两个条件。先对每个年龄计数,然后开两重循环,外层枚举发的人,内层枚举收的人,当满足条件的时候计数。如果年龄相同,计数的时候要避免掉自己给自己发消息的情况。代码如下:

public class Solution {public int numFriendRequests(int[] ages) {int res = 0;int[] cnt = new int[121];for (int age : ages) {cnt[age]++;}for (int i = 1; i <= 120; i++) {for (int j = 1; j <= 120; j++) {if (j > 0.5 * i + 7 && i >= j) {res += i == j ? cnt[i] * (cnt[j] - 1) : cnt[i] * cnt[j];}}}return res;} }

时空复杂度O(1)O(1)O(1)

总结

以上是生活随笔为你收集整理的【Leetcode】825. Friends Of Appropriate Ages的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。