【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 手势插件