题目地址:https://leetcode-cn.com/problems/na-ying-bi/
桌上有 n
堆力扣币,每堆的数量保存在数组 coins
中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
示例 1:
输入:[4,2,1]
输出:4
解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。
示例 2:
输入:[2,3,10]
输出:8
限制:
1 <= n <= 4
1 <= coins[i] <= 10
我们每次只能拿走某一堆中的1或者2个硬币,多少次能拿完。
示例1题目已经讲清楚了,示例2中:第一堆需要1次,第二堆需要拿2次,第三堆需要拿5次,总共需要8次拿完。
每堆被拿完的次数是coins[i]
除以2并且向上取整。
用数学就是(coins[i] + 1) / 2
。
Python代码如下:
class Solution:
def minCount(self, coins: List[int]) -> int:
return sum((c + 1) // 2 for c in coins)
欢迎关注负雪明烛的刷题博客,leetcode刷题800多,每道都讲解了详细写法!
2020 年 4 月 18 日 —— 个人赛蒙了
手机扫一扫
移动阅读更方便
你可能感兴趣的文章