Re: [闲聊] 每日leetcode

楼主: pandix (面包屌)   2024-07-07 14:40:26
※ 引述《smart0eddie (smart0eddie)》之铭言:
: 暴力解
: 每次多喝 B 瓶
: 每 E 个空瓶可以去换一瓶满的
: 会剩下 R 个空瓶
: 一行的数学姐看不懂
: 有大师能用姆咪也看得懂的方式解释一下吗
: [Python] One line Math Solution O(1) beating 100%
def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
return numBottles + (numBottles - 1) // (numExchange - 1)
就是说拿 E 瓶空瓶去换一瓶满的这个过程
可以看做是拿 E-1 个空瓶去换一瓶量的水然后倒进某个空瓶里
所以可以想成一开始拿一个空瓶来装 换完就直接喝掉(所以它又空了) 然后重复这个过程
(numBottles - 1) // (numExchagne-1)
留个空瓶来装 剩下的空瓶 E-1 瓶能换到一瓶的量 换到不能再换
然后再加一开始每瓶都是满的时候喝掉的那些
作者: Rushia (みけねこ的鼻屎)   2024-07-07 15:56:00
帮写HARD

Links booklink

Contact Us: admin [ a t ] ucptt.com