• Java实现 LeetCode 825 适龄的朋友(暴力)


    825. 适龄的朋友

    人们会互相发送好友请求,现在给定一个包含有他们年龄的数组,ages[i] 表示第 i 个人的年龄。

    当满足以下条件时,A 不能给 B(A、B不为同一人)发送好友请求:

    age[B] <= 0.5 * age[A] + 7
    age[B] > age[A]
    age[B] > 100 && age[A] < 100
    否则,A 可以给 B 发送好友请求。

    注意如果 A 向 B 发出了请求,不等于 B 也一定会向 A 发出请求。而且,人们不会给自己发送好友请求。

    求总共会发出多少份好友请求?

    示例 1:

    输入: [16,16]
    输出: 2
    解释: 二人可以互发好友申请。
    示例 2:

    输入: [16,17,18]
    输出: 2
    解释: 好友请求可产生于 17 -> 16, 18 -> 17.
    示例 3:

    输入: [20,30,100,110,120]
    输出: 3
    解释: 好友请求可产生于 110 -> 100, 120 -> 110, 120 -> 100.

    说明:

    1 <= ages.length <= 20000.
    1 <= ages[i] <= 120.

    class Solution {
        public int numFriendRequests(int[] ages) {
            int[] nums = new int[121];
            for (int age : ages) {
                nums[age] ++;
            }
    
            int ans = 0;
            for (int i = 120; i >= 1; i --) {
                if (nums[i] == 0) {
                    continue;
                }
    
                if (i > 0.5 * i + 7) {
                    ans += nums[i] * (nums[i] - 1);
                }
    
                for (int j = i - 1; j >= 1; j --) {
                    if (j <= 0.5 * i + 7) {
                        break;
                    } else {
                        ans += nums[j] * nums[i];
                    }
                }
            }
    
            return ans;
        }
    }
    
  • 相关阅读:
    PHP多进程(四) 内部多进程
    STL map and multimap
    Understanding Function Objects
    Working with Bit Flags Using STL
    STL Algorithms
    STL set and multiset
    Understanding Smart Pointers
    More Effective C++ 学习笔记(1)
    Adaptive Container: stack and queue
    第一个 Python 程序
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074484.html
Copyright © 2020-2023  润新知