LeetCode鍛鍊(1)
IPFS
目前距離碩士畢業只剩一年,但老實說對於程式的見解,還駐足於複製貼上跟偵錯的程度,有鑑於此要提升程式能力勢在必行,查找網路的教學,發現LeetCode是最有效的練習途徑,所以決定每天練習並記錄。
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/embed/7729c904-9183-4482-a6be-b30e3dc2451f.jpeg/public)
題目
今天的題目是要計算出總共能喝幾瓶飲料,不過這個題目有一個特殊的機制,就是可以用"一定"的數量空瓶去兌換飲料來喝,至於是幾瓶就是隨題目而定,舉例來說「一共有9瓶飲料,然後這家店可以用3瓶空瓶去兌換飲料,所以每當喝完再兌換在喝的過程中,一共可以喝9+3+1=13瓶飲料,答案就是13」要寫一個Python程式來計算瓶子數量。
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/embed/b34f6012-83dc-410a-b914-3f14db4747e7.jpeg/public)
解答
這裡面運用到一個數學邏輯如下,收先計算一開始能喝到的飲料瓶數9瓶,然後在接下來的交換過程中,因為裝飲料一定至少需要一個空瓶,所以總瓶數 9-1=8 瓶,而兌換空瓶則至少會有一瓶被拿去裝飲料,所以 3-1=2 瓶,所以交換過程所獲的的飲料瓶數為 8/2=4 瓶飲料,所以一共可以喝到 9+4=13 瓶飲料。
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/embed/2dac277a-2411-49c1-876a-b4190ede6d5e.jpeg/public)
總結
果然一試便知有沒有,打開題目一看直接腦袋一片空白,甚至連題目是英文都看得很吃力,只能索性直接打開討論去看,直接看到大神利用數學技巧解題,讓我這16分鐘直接物超所值學到非常厲害的思路,雖然不知道這樣練習下去的成果會是如何,但至少今天我已經學到一個令我佩服五體投地的解題技巧了。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!