作者pandix (麵包屌)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Sun Jul 7 14:40:26 2024
※ 引述《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 瓶能換到一瓶的量 換到不能再換
然後再加一開始每瓶都是滿的時候喝掉的那些
--
蛤?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.1.90 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1720334429.A.6B2.html
→ Rushia: 幫寫HARD 07/07 15:56
推 smart0eddie: 大師 07/08 09:52