小赖子的英国生活和资讯

模拟算法解决小时候的疑问: 空瓶子换啤酒问题

阅读 桌面完整版

记得小时候一直在琢磨的问题, 拿空酒瓶(也有可能是可乐)换酒瓶, 最后面一共可以喝几瓶. 今天在 leetcode 看到了这题, 1518.

simulation-algorithm-water-bottles 模拟算法解决小时候的疑问: 空瓶子换啤酒问题 ACM题解 数据结构与算法 程序设计

simulation-algorithm-water-bottles

这题是简单题, 我们通过模拟就能解决. 需要的定义的变量就是总喝的瓶数, 还有就是当前空瓶数. 只要空瓶子够换新酒瓶, 我们就不停的循环这个过程. 需要注意的是新的空瓶数得把原来不够换的那部分也加上. 比如3个空瓶可以换一个新瓶, 现在有5个空瓶, 只够换1个, 然后新的空瓶就是(5-3+1=3)还够换1瓶. 不啰嗦了, 以下就是 Python代码.

1
2
3
4
5
6
7
8
9
class Solution:
    def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
        ans = numBottles
        empty = numBottles
        while empty >= numExchange:
            newBottles = empty // numExchange
            ans += newBottles
            empty = newBottles + empty % numExchange
        return ans            
class Solution:
    def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
        ans = numBottles
        empty = numBottles
        while empty >= numExchange:
            newBottles = empty // numExchange
            ans += newBottles
            empty = newBottles + empty % numExchange
        return ans            

英文: Simulation Algorithm to Compute the Number of Water Bottles

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version