力扣题目练习 换水问题

1

很简单,就是直到你剩余的空水瓶不足以换一瓶水的时候,就停止

复制代码
class Solution(object):
    #我有这么多水,exchange个瓶子可以兑换一瓶水
    def numWaterBottles(self, numBottles, numExchange):
        """
        :type numBottles: int
        :type numExchange: int
        :rtype: int
        """
        count=numBottles
        now_exchange=numBottles
        while (now_exchange//numExchange)>=1:
            count+=(now_exchange//numExchange)
            #现在有的空瓶子的数目
            now_exchange=(now_exchange%numExchange)+(now_exchange//numExchange)
        return count
solution=Solution()
result=solution.numWaterBottles(15,4)
print(result)

然后我们看加大难度的等级

题目的意思是这样的:空水瓶换水,一次只能换一瓶水,换完之后剩余的空水瓶数目仅仅+1,并且下一次换一瓶水需要的空水瓶数目还要涨,我这个没有思考其他方法,还是沿袭问题1的,代码如下:

复制代码
class Solution(object):
    #我有这么多水,exchange个瓶子可以兑换一瓶水
    #意思就是numexchange的数量是会发生改变的
    #而且一次只可以交换一个满水瓶
    def numWaterBottles(self, numBottles, numExchange):
        """
        :type numBottles: int
        :type numExchange: int
        :rtype: int
        """
        count=numBottles
        now_exchange=numBottles
        while (now_exchange//numExchange)>=1:
            count+=1
            #现在有的空瓶子的数目
            print(now_exchange)
            print('1',numExchange)
            now_exchange=(now_exchange%numExchange)+((now_exchange//numExchange)-1)*(numExchange)+1
            numExchange+=1
        return count
solution=Solution()
result=solution.numWaterBottles(10,3)
print(result)

但是其实每次只置换一瓶,就没必要这个除法了 那么条件就是如果剩余空水瓶数目大于等于置换一瓶水需要的空水瓶数目,便可以继续,所以我们可以写出更简单的代码

如果喜欢这个帖子,欢迎点赞收藏

相关推荐
cici158746 小时前
图像匹配算法:灰度相关法、相位相关法与金字塔+相位相关法
算法
佚名ano6 小时前
支持向量机SVM的简单推导过程
算法·机器学习·支持向量机
云泽8087 小时前
蓝桥杯算法精讲:倍增思想与离散化深度剖析
算法·职场和发展·蓝桥杯
m0_569881477 小时前
基于C++的数据库连接池
开发语言·c++·算法
.select.7 小时前
c++ auto
开发语言·c++·算法
2301_819414307 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
WZTTMoon7 小时前
从互斥锁到无锁,Java 20年并发安全进化史
java·python·安全
2401_884563247 小时前
C++中的访问者模式高级应用
开发语言·c++·算法
智者知已应修善业7 小时前
【51单片机用两个定时计数器级联实现定时】2023-04-12
c语言·经验分享·笔记·算法·51单片机
君义_noip7 小时前
信息学奥赛一本通 1613:打印文章
c++·算法·信息学奥赛·csp-s