• [LC] 825. Friends Of Appropriate Ages


    Some people will make friend requests. The list of their ages is given and ages[i] is the age of the ith person. 

    Person A will NOT friend request person B (B != A) if any of the following conditions are true:

    • age[B] <= 0.5 * age[A] + 7
    • age[B] > age[A]
    • age[B] > 100 && age[A] < 100

    Otherwise, A will friend request B.

    Note that if A requests B, B does not necessarily request A.  Also, people will not friend request themselves.

    How many total friend requests are made?

    Example 1:

    Input: [16,16]
    Output: 2
    Explanation: 2 people friend request each other.
    

    Example 2:

    Input: [16,17,18]
    Output: 2
    Explanation: Friend requests are made 17 -> 16, 18 -> 17.

    Example 3:

    Input: [20,30,100,110,120]
    Output: 
    Explanation: Friend requests are made 110 -> 100, 120 -> 110, 120 -> 100.
    

    Notes:

    • 1 <= ages.length <= 20000.
    • 1 <= ages[i] <= 120.
    class Solution {
        public int numFriendRequests(int[] ages) {
            Map<Integer, Integer> map = new HashMap<>();
            int ans = 0;
            for (int num : ages) {
                map.put(num, map.getOrDefault(num, 0) + 1);
            }
            for (int a: map.keySet()) {
                for (int b: map.keySet()) {
                    if (!isValid(a, b)) {
                        continue;
                    }
                    if (a == b) {
                        ans += map.get(a) * (map.get(a) - 1);
                    } else {
                        ans += map.get(a) * map.get(b);
                    }
                }
            }
            return ans;
        }
        
        private boolean isValid(int a, int b) {
            if (b <= 0.5 * a + 7 || b > a || b > a && a < 100) {
                return false;
            }
            return true;
        }
    }
  • 相关阅读:
    12.10
    4.06Android使用EditText小技巧汇总
    4.05
    4.04Android学习
    4.03Android学习
    4.02Android学习
    4.01Android学习
    3.31构建之法读后感3
    3.30Android学习
    3.29Android学习
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12596103.html
Copyright © 2020-2023  润新知