LeetCode鍛鍊(1)
目前距離碩士畢業只剩一年,但老實說對於程式的見解,還駐足於複製貼上跟偵錯的程度,有鑑於此要提升程式能力勢在必行,查找網路的教學,發現LeetCode是最有效的練習途徑,所以決定每天練習並記錄。
題目
今天的題目是要計算出總共能喝幾瓶飲料,不過這個題目有一個特殊的機制,就是可以用"一定"的數量空瓶去兌換飲料來喝,至於是幾瓶就是隨題目而定,舉例來說「一共有9瓶飲料,然後這家店可以用3瓶空瓶去兌換飲料,所以每當喝完再兌換在喝的過程中,一共可以喝9+3+1=13瓶飲料,答案就是13」要寫一個Python程式來計算瓶子數量。
解答
這裡面運用到一個數學邏輯如下,收先計算一開始能喝到的飲料瓶數9瓶,然後在接下來的交換過程中,因為裝飲料一定至少需要一個空瓶,所以總瓶數 9-1=8 瓶,而兌換空瓶則至少會有一瓶被拿去裝飲料,所以 3-1=2 瓶,所以交換過程所獲的的飲料瓶數為 8/2=4 瓶飲料,所以一共可以喝到 9+4=13 瓶飲料。
總結
果然一試便知有沒有,打開題目一看直接腦袋一片空白,甚至連題目是英文都看得很吃力,只能索性直接打開討論去看,直接看到大神利用數學技巧解題,讓我這16分鐘直接物超所值學到非常厲害的思路,雖然不知道這樣練習下去的成果會是如何,但至少今天我已經學到一個令我佩服五體投地的解題技巧了。