Description#
There are numBottles
water bottles that are initially full of water. You can exchange numExchange
empty water bottles from the market with one full water bottle.
The operation of drinking a full water bottle turns it into an empty bottle.
Given the two integers numBottles
and numExchange
, return the maximum number of water bottles you can drink.
Example 1:
![](https://spcdn.pages.dev/leetcode/problems/1518.Water%20Bottles/images/sample_1_1875.png)
Input: numBottles = 9, numExchange = 3
Output: 13
Explanation: You can exchange 3 empty bottles to get 1 full water bottle.
Number of water bottles you can drink: 9 + 3 + 1 = 13.
Example 2:
![](https://spcdn.pages.dev/leetcode/problems/1518.Water%20Bottles/images/sample_2_1875.png)
Input: numBottles = 15, numExchange = 4
Output: 19
Explanation: You can exchange 4 empty bottles to get 1 full water bottle.
Number of water bottles you can drink: 15 + 3 + 1 = 19.
Constraints:
1 <= numBottles <= 100
2 <= numExchange <= 100
Solutions#
Solution 1#
1
2
3
4
5
6
7
| class Solution:
def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
ans = numBottles
while numBottles >= numExchange:
numBottles -= numExchange - 1
ans += 1
return ans
|
1
2
3
4
5
6
7
8
9
| class Solution {
public int numWaterBottles(int numBottles, int numExchange) {
int ans = numBottles;
for (; numBottles >= numExchange; ++ans) {
numBottles -= (numExchange - 1);
}
return ans;
}
}
|
1
2
3
4
5
6
7
8
9
10
| class Solution {
public:
int numWaterBottles(int numBottles, int numExchange) {
int ans = numBottles;
for (; numBottles >= numExchange; ++ans) {
numBottles -= (numExchange - 1);
}
return ans;
}
};
|
1
2
3
4
5
6
7
| func numWaterBottles(numBottles int, numExchange int) int {
ans := numBottles
for ; numBottles >= numExchange; ans++ {
numBottles -= (numExchange - 1)
}
return ans
}
|
1
2
3
4
5
6
7
| function numWaterBottles(numBottles: number, numExchange: number): number {
let ans = numBottles;
for (; numBottles >= numExchange; ++ans) {
numBottles -= numExchange - 1;
}
return ans;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
| /**
* @param {number} numBottles
* @param {number} numExchange
* @return {number}
*/
var numWaterBottles = function (numBottles, numExchange) {
let ans = numBottles;
for (; numBottles >= numExchange; ++ans) {
numBottles -= numExchange - 1;
}
return ans;
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Solution {
/**
* @param Integer $numBottles
* @param Integer $numExchange
* @return Integer
*/
function numWaterBottles($numBottles, $numExchange) {
$ans = $numBottles;
while ($numBottles >= $numExchange) {
$numBottles = $numBottles - $numExchange + 1;
$ans++;
}
return $ans;
}
}
|