【Leetcode】825. Friends Of Appropriate Ages
生活随笔
收集整理的这篇文章主要介绍了
【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+7b≤0.5a+7;
2、b>ab>ab>a;
3、b>100∧a<100b>100 \land a<100b>100∧a<100;
其余情况aaa都会给bbb发消息(自己不会发给自己)。问总共会发多少消息。题目保证所有年龄都是1∼1201\sim 1201∼120的整数。
当满足b≤ab\le ab≤a的时候条件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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 哪款计算机可以玩游戏,哪个云电脑配置较高
- 下一篇: Chromium 手势插件