https://leetcode.cn/problems/na-ying-bi/description/
桌上有
n堆力扣币,每堆的数量保存在数组coins中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。示例 1:
输入:
[4,2,1]输出:
4解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。
示例 2:
输入:
[2,3,10]输出:
8限制:
1 <= n <= 41 <= coins[i] <= 10
可以假设每次都取两枚,不论这堆硬币有几枚,那么题目就变为了,每次取两枚,几次能将一堆硬币取完。答案是 向上取整[硬币数量 / 2] 。
class Solution {
public int minCount(int[] coins) {
int res = 0;
for (int c : coins) {
res += (c + 1) / 2;
}
return res;
}
}