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