【每日一题Day334】LC2591将钱分给最多的儿童 | 贪心

简介: 【每日一题Day334】LC2591将钱分给最多的儿童 | 贪心

将钱分给最多的儿童【LC2591】

给你一个整数 money ,表示你总共有的钱数(单位为美元)和另一个整数 children ,表示你要将钱分配给多少个儿童。

你需要按照如下规则分配:

所有的钱都必须被分配。

每个儿童至少获得 1 美元。

没有人获得 4 美元。

请你按照上述规则分配金钱,并返回 最多 有多少个儿童获得 恰好 8 美元。如果没有任何分配方案,返回-1。

  • 局部最优:每个小孩至少给一块钱,然后尽可能给某些小孩8块;但是需要注意,不能有分到4块的,钱也不能有剩余
  • 全局最优:使尽可能多的小孩获得 恰好8 美元
  • 实现
class Solution {
    public int distMoney(int money, int children) {
        // 首先满足每个小孩至少一块,然后尽可能给某些小孩8块,但是需要注意,不能有分到4块的,钱也不能有剩余
        if (money < children) return -1;
        else if (money > children * 8) return children - 1;
        else if (money == children * 8 - 4) return children - 2;
        return (money - children) / 7;
    }
}

复杂度

时间复杂度:O ( 1 )

空间复杂度:O ( 1 )

目录
相关文章
|
7月前
【每日一题Day273】LC860柠檬水找零 | 贪心
【每日一题Day273】LC860柠檬水找零 | 贪心
43 0
【每日一题Day273】LC860柠檬水找零 | 贪心
|
7月前
|
机器学习/深度学习
【每日一题Day125】LC1326灌溉花园的最少水龙头数目 | 动态规划 贪心
【每日一题Day125】LC1326灌溉花园的最少水龙头数目 | 动态规划 贪心
64 0
|
7月前
力扣2591. 将钱分给最多的儿童
力扣2591. 将钱分给最多的儿童
|
7月前
【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
【多思路解决喝汽水问题】1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
192 0
|
7月前
【每日一题Day230】LC2611老鼠和奶酪 | 排序+贪心
【每日一题Day230】LC2611老鼠和奶酪 | 排序+贪心
68 0
|
7月前
【每日一题Day154】LC1626无矛盾的最佳球队 | 动态规划
【每日一题Day154】LC1626无矛盾的最佳球队 | 动态规划
40 0
|
7月前
【每日一题Day338】LC2582递枕头 | 模拟+数学
【每日一题Day338】LC2582递枕头 | 模拟+数学
34 0
|
7月前
|
机器人
【每日一题Day343】LC2731移动机器人 | 脑筋急转弯+数学
【每日一题Day343】LC2731移动机器人 | 脑筋急转弯+数学
59 0
|
7月前
【每日一题Day224】LC2517礼盒的最大甜蜜度 | 二分答案
【每日一题Day224】LC2517礼盒的最大甜蜜度 | 二分答案
35 0
Leetcode 2591. 将钱分给最多的儿童
Leetcode 2591. 将钱分给最多的儿童
101 0