Skip to content

Commit 70740cc

Browse files
committed
add: leetcode 1518 readme
1 parent 7e9d5af commit 70740cc

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

leetcode/1518.Water-Bottles/README.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# [1518. Water Bottles](https://leetcode-cn.com/problems/water-bottles/)
2+
3+
## 题目
4+
5+
Given numBottles full water bottles, you can exchange numExchange empty water bottles for one full water bottle.
6+
7+
The operation of drinking a full water bottle turns it into an empty bottle.
8+
9+
Return the maximum number of water bottles you can drink.
10+
11+
**Example 1**:
12+
13+
![https://assets.leetcode.com/uploads/2020/07/01/sample_1_1875.png](https://assets.leetcode.com/uploads/2020/07/01/sample_1_1875.png)
14+
15+
Input: numBottles = 9, numExchange = 3
16+
Output: 13
17+
Explanation: You can exchange 3 empty bottles to get 1 full water bottle.
18+
Number of water bottles you can drink: 9 + 3 + 1 = 13.
19+
20+
**Example 2**:
21+
22+
![https://assets.leetcode.com/uploads/2020/07/01/sample_2_1875.png](https://assets.leetcode.com/uploads/2020/07/01/sample_2_1875.png)
23+
24+
Input: numBottles = 15, numExchange = 4
25+
Output: 19
26+
Explanation: You can exchange 4 empty bottles to get 1 full water bottle.
27+
Number of water bottles you can drink: 15 + 3 + 1 = 19.
28+
29+
**Example 3**:
30+
31+
Input: numBottles = 5, numExchange = 5
32+
Output: 6
33+
34+
**Example 4**:
35+
36+
Input: numBottles = 2, numExchange = 3
37+
Output: 2
38+
39+
**Constraints:**
40+
41+
- 1 <= numBottles <= 100
42+
- 2 <= numExchange <= 100
43+
44+
## 题目大意
45+
46+
小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。
47+
48+
如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。
49+
50+
请你计算 最多 能喝到多少瓶酒。
51+
52+
## 解题思路
53+
54+
- 模拟
55+
首先我们一定可以喝到 numBottles 瓶酒,剩下 numBottles 个空瓶。接下来我们可以拿空瓶子换酒,每次拿出 numExchange 个瓶子换一瓶酒,然后再喝完这瓶酒,得到一个空瓶。这样模拟下去,直到所有的空瓶子小于numExchange结束
56+
57+
## 代码
58+
59+
```go
60+
package leetcode
61+
62+
func numWaterBottles(numBottles int, numExchange int) int {
63+
if numBottles < numExchange {
64+
return numBottles
65+
}
66+
quotient := numBottles / numExchange
67+
reminder := numBottles % numExchange
68+
ans := numBottles + quotient
69+
for quotient+reminder >= numExchange {
70+
quotient, reminder = (quotient+reminder)/numExchange, (quotient+reminder)%numExchange
71+
ans += quotient
72+
}
73+
return ans
74+
}
75+
```

0 commit comments

Comments
 (0)