vocus logo

方格子 vocus

1518. Water Bottles | LeetCode | Swift

vc7-avatar-img
發佈於LeetCode
更新 發佈閱讀 3 分鐘

題目

https://leetcode.com/problems/water-bottles/description/?envType=daily-question&envId=2025-10-01

日期

2025/10/1

raw-image

直覺解

每一次的 while 迴圈,進行:

  • 從當前的被除數,算出商
  • 商加上餘數作為新的被除數
  • 把結果加上當前的商

直到當前的被除數小於除數為止。
就是一五一十的把題意寫出來。

class Solution {
func numWaterBottles(_ numBottles: Int, _ numExchange: Int) -> Int {
var current = numBottles
var result = current
while current >= numExchange {
let new = current / numExchange
current = new + current % numExchange
result += new
}
return result
}
}

優化解

因為每一次兌換後,會拿回一個瓶子,因此每次空瓶的兌換成本是 numExchange - 1

接下來只要算透過兌換成本能換幾次。但是因為在 edge case 裡,例如餘數剛好等於兌換成本的時候,就會被多換一次。以第二個範例為例:

Input: numBottles = 15, numExchange = 4

15 / (4 - 1) 為 5 。但是其實應該為 4 ,因為最後一組的三個空瓶其實是沒有辦法兌換的。 -1 就是為了這一類的情形做的調整。

程式碼

因此這邊的計算方式就變成這樣:

原本的瓶數 + 能兌換到的瓶數
class Solution {
func numWaterBottles(_ numBottles: Int, _ numExchange: Int) -> Int {
return numBottles + (numBottles - 1) / (numExchange - 1)
}
}
留言
avatar-img
萱寫寫
3會員
19內容數
讀書心得、活動參加心得
萱寫寫的其他內容
2025/09/26
LeetCode 每日一題: 2025/09/26
2025/09/26
LeetCode 每日一題: 2025/09/26
2025/09/25
LeetCode 每日一題: 2025/09/25
2025/09/25
LeetCode 每日一題: 2025/09/25
2025/09/24
2025/09/24
看更多
你可能也想看
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
看完上篇 4 位新成員的靈魂拷問,是不是意猶未盡?別急,野格團新血的驚喜正接著登場!今天下篇接力的另外 4 位「個人主題專家」,戰力同樣驚人──領域從旅行美食、運動、商業投資到自我成長;這些人如何維持長跑般的創作動力?在爆紅的文章背後,又藏著哪些不為人知的洞察?5 大靈魂拷問繼續出擊
Thumbnail
看完上篇 4 位新成員的靈魂拷問,是不是意猶未盡?別急,野格團新血的驚喜正接著登場!今天下篇接力的另外 4 位「個人主題專家」,戰力同樣驚人──領域從旅行美食、運動、商業投資到自我成長;這些人如何維持長跑般的創作動力?在爆紅的文章背後,又藏著哪些不為人知的洞察?5 大靈魂拷問繼續出擊
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
高中數學主題練習—對數方程式
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
2018/08/20 17:12 拍圖
Thumbnail
2018/08/20 17:12 拍圖
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News