给你一个整数
money,表示你总共有的钱数(单位为美元)和另一个整数children,表示你要将钱分配给多少个儿童。你需要按照如下规则分配:
- 所有的钱都必须被分配。
- 每个儿童至少获得
1美元。- 没有人获得
4美元。请你按照上述规则分配金钱,并返回 最多 有多少个儿童获得 恰好
8美元。如果没有任何分配方案,返回-1。
思路:贪心
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;
}
}