zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    
  • 相关阅读:
    uva 147 Dollars
    hdu 2069 Coin Change(完全背包)
    hdu 1708 Fibonacci String
    hdu 1568 Fibonacci
    hdu 1316 How Many Fibs?
    poj 1958 Strange Towers of Hanoi
    poj 3601Tower of Hanoi
    poj 3572 Hanoi Tower
    poj 1920 Towers of Hanoi
    筛选法——素数打表
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074484.html
Copyright © 2011-2022 走看看