《Leetcode of December》860.柠檬水找钱

class Solution:
    def lemonadeChange(self, bills: List[int]) -> bool:
        if not bills:
            return True
        five,ten=0,0
        #收5块加1
        #收10块,5块减1,10块加1
        #收20,先用一个10快去找,如果没有10块,就用3个5块去找
        #最后检查5块的数量和10块的数量都大于0,否则返回False
        for i in range(len(bills)):
            if bills[i]==5:
                five+=1
            elif bills[i]==10:
                ten+=1
                five-=1
            elif bills[i]==20:
                if ten==0:
                    five-=3
                else:
                    ten-=1
                    five-=1
        
            if five<0 or ten<0:
                return False

        return  True

总结:一开始想复杂了还用hash计算,其实就是简单优先用大额金钱找,再用小额金钱找,统计较小金额的数量即可。 

猜你喜欢

转载自blog.csdn.net/weixin_37724529/article/details/110950243