LeetCode刷题之LCP 06. 拿硬币
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
桌上有 n
堆力扣币,每堆的数量保存在数组 coins
中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。 - 示例:
示例 1 :
输入:[4,2,1]
输出:4
解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。
示例 2 :
输入:[2,3,10]
输出:8
- 限制:
1 <= n <= 4
1 <= coins[i] <= 10
- 代码:
class Solution:
def minCount(self, coins: List[int]) -> int:
result = 0
for i in range(len(coins)):
counts_2 = coins[i] // 2
counts_1 = coins[i] % 2
result += counts_2 + counts_1
return result
- 算法说明:
逐个遍历元素,counts_2 = coins[i] // 2
求出一次拿取两个硬币的次数,counts_1 = coins[i] % 2
求出一次拿取一个硬币的次数,返回累加结果result
。