返回顶部

LCP 06

桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。

 

输入:[4,2,1]

输出:4

解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。

 

第一遍

思路:先求总数 再除2 四舍五入

复制代码
class Solution(object):
    def minCount(self, coins):
        """
        :type coins: List[int]
        :rtype: int
        """
        total=0
        for coin in coins:
            total=total+coin
        if(total%2==1):
            total=total+1
        return(total/2)
复制代码

 

对[1,5,5,6]的会出错 因为每一堆要单独操作

 

第二遍

复制代码
class Solution(object):
    def minCount(self, coins):
        """
        :type coins: List[int]
        :rtype: int
        """
        ans=0
        for coin in coins:
            if(coin%2==1):
                coin=coin+1
            ans=ans+coin/2
//ans=ans+(coin+1)//2
        return(ans)
复制代码

 

 官方题解先+1再// 更简单

 

posted @   YuhangLiuCE  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示