描述
桌上有 n
堆力扣币,每堆的数量保存在数组 coins
中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
示例
输入:[4,2,1] 输出:4 解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。
限制
• 1 <= n <= 4 • 1 <= coins[i] <= 10
思路
这道题目思路很好梳理,每一堆里面的情况只有两种,如果有一个,那就拿一个;如果超过一个,那就拿总个数/2+总个数%2
个硬币
感谢力扣每日一题,知道我开始复健送我一道题秒了找回信心qaq
代码
class Solution {
public:
int minCount(vector<int>& coins) {
int ans=0;
for(auto c: coins){
int tmp = c/2==0?1:c/2+c%2;
//cout<<tmp<<endl;
ans+=tmp;
}
return ans;
}
};