算法提高之LeetCode刷题数据结构和算法分析

拿硬币

2020-04-27  本文已影响0人  _阿南_

题目:

桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
示例 1:
输入:[4,2,1]
输出:4
解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。

示例 2:
输入:[2,3,10]
输出:8
限制:
1 <= n <= 4
1 <= coins[i] <= 10

题目的理解:

每次从一个堆拿走2个硬币,如果只有一个硬币了那就拿走一个。

python实现

from typing import List

class Solution:
    def minCount(self, coins: List[int]) -> int:
        result = 0 
        
        for num in coins:
            result += num // 2
            if num % 2 > 0:
                result += 1
        
        return result

想看最优解法移步此处

提交

100%

折磨一个月后,对简单题目非常的得心应手啊

// END 每天进步一点点,不奢望站在人类的高点

上一篇 下一篇

猜你喜欢

热点阅读