【每日一题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 )

目录
相关文章
|
2月前
【每日一题Day273】LC860柠檬水找零 | 贪心
【每日一题Day273】LC860柠檬水找零 | 贪心
22 0
【每日一题Day273】LC860柠檬水找零 | 贪心
|
2月前
蓝桥备战--纪念品分组OJ532,贪心证明
蓝桥备战--纪念品分组OJ532,贪心证明
17 0
|
2月前
【每日一题Day154】LC1626无矛盾的最佳球队 | 动态规划
【每日一题Day154】LC1626无矛盾的最佳球队 | 动态规划
25 0
|
2月前
【每日一题Day338】LC2582递枕头 | 模拟+数学
【每日一题Day338】LC2582递枕头 | 模拟+数学
16 0
|
2月前
【每日一题Day224】LC2517礼盒的最大甜蜜度 | 二分答案
【每日一题Day224】LC2517礼盒的最大甜蜜度 | 二分答案
19 0
|
2月前
|
安全
【每日一题Day137】LC1599经营摩天轮的最大利润 | 模拟+贪心
【每日一题Day137】LC1599经营摩天轮的最大利润 | 模拟+贪心
50 0
|
测试技术 C++ Python
糖果-蓝桥杯19省赛
糖果-蓝桥杯19省赛
79 0
|
测试技术
蓝桥杯2021年第十二届省赛真题-砝码称重(动态规划)
蓝桥杯2021年第十二届省赛真题-砝码称重(动态规划)
|
测试技术 C语言
题目 2572: 蓝桥杯2020年第十一届省赛真题-子串分值
题目 2572: 蓝桥杯2020年第十一届省赛真题-子串分值
|
Python
(蓝桥云课)「蓝桥杯赛前急救」简单填空题秒杀拿分技巧
(蓝桥云课)「蓝桥杯赛前急救」简单填空题秒杀拿分技巧
72 0