【Leetcode】825. Friends Of Appropriate Ages
題目地址:
https://leetcode.com/problems/friends-of-appropriate-ages/
給定nnn個(gè)人的年齡,當(dāng)滿(mǎn)足以下要求的時(shí)候aaa不會(huì)給bbb發(fā)消息:
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都會(huì)給bbb發(fā)消息(自己不會(huì)發(fā)給自己)。問(wèn)總共會(huì)發(fā)多少消息。題目保證所有年齡都是1~1201\sim 1201~120的整數(shù)。
當(dāng)滿(mǎn)足b≤ab\le ab≤a的時(shí)候條件333是不會(huì)發(fā)生的。所以只需要判斷前兩個(gè)條件。先對(duì)每個(gè)年齡計(jì)數(shù),然后開(kāi)兩重循環(huán),外層枚舉發(fā)的人,內(nèi)層枚舉收的人,當(dāng)滿(mǎn)足條件的時(shí)候計(jì)數(shù)。如果年齡相同,計(jì)數(shù)的時(shí)候要避免掉自己給自己發(fā)消息的情況。代碼如下:
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;} }時(shí)空復(fù)雜度O(1)O(1)O(1)。
總結(jié)
以上是生活随笔為你收集整理的【Leetcode】825. Friends Of Appropriate Ages的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 哪款计算机可以玩游戏,哪个云电脑配置较高
- 下一篇: Chromium 手势插件