Leetcode 2591. 将钱分给最多的儿童

简介: Leetcode 2591. 将钱分给最多的儿童

2591. 将钱分给最多的儿童


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


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


所有的钱都必须被分配。

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

没有人获得 4 美元。

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


示例 1:


输入:money = 20, children = 3

输出:1

解释:

最多获得 8 美元的儿童数为 1 。一种分配方案为:

- 给第一个儿童分配 8 美元。

- 给第二个儿童分配 9 美元。

- 给第三个儿童分配 3 美元。

没有分配方案能让获得 8 美元的儿童数超过 1 。

示例 2:


输入:money = 16, children = 2

输出:2

解释:每个儿童都可以获得 8 美元

提示:

1 <= money <= 200

2 <= children <= 30


思路:


这是一道简单题通过率却很低

33ca991f97f94144967b0737406b6b76.png

主要是讨论各种情况。

例如:钱的数目小于儿童就返回-1

       给每个儿童分一美元,剩下的钱小于等与7返回 0

       给每个儿童分···· 具体看代码


代码


class Solution {
public:
    int distMoney(int money, int children) {      
         if (money < children) {
            return -1;
        }        
        money = money - children;
        int num = money / 7;       
        if (num >= children) {                  //如果剩下的钱够给每个儿童分配7美元还有剩余
        if (money % 7 > 0 || money / 7 > children) {//为满足每一元都要分配把多余的钱分给一人
                return children - 1;
            }
            else {
                return children;
            }
        }       
        if (money - num * 7 == 3) {      //如果分给另一个儿童的钱是三美元且其余儿童都分配了七美元结果减一
            if (num + 1 == children) {
                return num - 1;
            }
        }       
        return num;
    }
};


官方题解


class Solution {
public:
    int distMoney(int money, int children) {
        if (money < children) {
            return -1;
        }
        money -= children;
        int cnt = min(money / 7, children);
        money -= cnt * 7;
        children -= cnt;
        if ((children == 0 && money > 0) || (children == 1 && money == 3)) {
            cnt--;
        }
        return cnt;
    }
};
目录
相关文章
|
9月前
|
机器学习/深度学习 数据采集 人工智能
《解锁Kaggle:从数据小白到AI大神的进阶之路》
Kaggle被誉为数据科学领域的“GitHub”,拥有丰富的数据集、实战竞赛和用户内核,是提升数据处理与人工智能技能的理想平台。新手可从简单数据集入手,学习数据清洗、分析与可视化;进阶者则可通过复杂数据集和竞赛挑战自我,掌握高级预处理技术和模型优化。Kaggle的讨论区和内核资源提供了宝贵的学习机会,帮助用户站在巨人的肩膀上快速成长。持续参与竞赛和项目,关注最新技术动态,不断实践与积累经验,助你在数据科学领域稳步前行。
401 8
《解锁Kaggle:从数据小白到AI大神的进阶之路》
|
9月前
|
传感器 人工智能 算法
《流形学习:破解人工智能复杂数据处理难题的利刃》
流形学习降维算法,如Isomap和LLE,通过挖掘数据的内在几何结构,有效应对高维图像、文本和传感器等复杂数据带来的挑战。Isomap基于测地线距离保持全局结构,LLE则侧重局部线性重构,二者在人脸识别、生物医学数据分析、自然语言处理及传感器数据分析等领域展现出独特优势。尽管面临计算复杂度和噪声影响等挑战,流形学习仍为复杂数据处理提供了强大工具,未来结合深度学习等技术将有更广泛应用前景。
291 10
|
10月前
|
搜索推荐 算法 数据挖掘
探讨淘宝商品 API 接口:运用及收益
在电商蓬勃发展的今天,淘宝作为国内巨头,拥有海量商品数据和庞大用户群体。淘宝商品API接口为开发者、电商从业者和数据分析师提供了丰富的商品信息,如详情、价格、销量、评价等,助力电商平台搭建、推荐系统优化、市场调研及竞品分析,显著提升业务收益。本文将深入探讨该接口的运用方法与价值,并结合实际代码示例,帮助读者更好地理解和应用。
292 6
|
消息中间件 监控 Java
Kafka 新的消费组默认的偏移量设置和消费行为
Kafka 新的消费组默认的偏移量设置和消费行为
1281 1
|
消息中间件 存储 Kafka
深入浅出分析kafka客户端程序设计 ----- 消费者篇----万字总结(上)
深入浅出分析kafka客户端程序设计 ----- 消费者篇----万字总结(上)
615 1
|
供应链 安全 物联网
区块链技术的应用场景和优势
区块链技术的应用场景和优势
1387 0
|
文字识别 JavaScript Go
|
自然语言处理 前端开发
html+css+js+jq简单实现原神官网动态效果
html+css+js+jq简单实现原神官网动态效果
786 0
|
人工智能 算法 搜索推荐
GitHub近10万星:印度小哥用Python和Java实现所有AI算法
今天两个算法实现的项目又登上了GitHub热榜,每逢招聘季必上榜?此前,这两个项目曾多次登顶,分别用Python和Java实现了面试中常考的算法,AI行业就业形势日趋严峻,而算法岗更是竞争激烈,是时候复习一下基本功了!
712 0
GitHub近10万星:印度小哥用Python和Java实现所有AI算法
|
机器学习/深度学习 人工智能 算法
揭秘美图影像实验室:数据、算法和一件关于美的事
自成立以来,美图影像实验室的研究成果几乎改变了美图软件、硬件中所有功能。一键美颜、实时美妆,或是时下相当流行的美图秀秀手绘功能,都有这个实验室的功劳。
5513 0
揭秘美图影像实验室:数据、算法和一件关于美的事