题目来源:
leetcode题目,网址:2591. 将钱分给最多的儿童 - 力扣(LeetCode)
解题思路:
首先给每个孩子分发一元。然后计算剩余钱对 7 的整除结果 res 及 取余结果 left 。假设 孩子数为 n ,则若 res>n ,则最多有 n-1 个孩子分到 8 元;若 res==n,若 left 为 0,结果为 res,否则结果为 res-1;若 res<n,若 left 为 3 ,且 n-res==1,则结果为 res-1,否则为 res。
解题代码:
class Solution {
public int distMoney(int money, int children) {
if(money<children){
return -1;
}
money=money-children; //每人分发一元
int left=money%7; //分发七元后剩余钱数
int res=money/7; //有多少人可以分发七元
if(res==children){
if(left==0){
return res;
}else{
return res-1;
}
}else if(res>children){
return children-1;
}else{
if(left==3 && children-res==1){
return res-1;
}else{
return res;
}
}
}
}
总结:
无官方题解。
distribute 分发