class Solution {
public:
int maxBottlesDrunk(int numBottles, int numExchange) {
}
};
100235. 换水问题 II
给你两个整数 numBottles
和 numExchange
。
numBottles
代表你最初拥有的满水瓶数量。在一次操作中,你可以执行以下操作之一:
numExchange
个空水瓶交换一个满水瓶。然后,将 numExchange
的值增加 1 。注意,你不能使用相同的 numExchange
值交换多批空水瓶。例如,如果 numBottles == 3
并且 numExchange == 1
,则不能用 3
个空水瓶交换成 3
个满水瓶。
返回你 最多 可以喝到多少瓶水。
示例 1:
输入:numBottles = 13, numExchange = 6 输出:15 解释:上表显示了满水瓶的数量、空水瓶的数量、numExchange 的值,以及累计喝掉的水瓶数量。
示例 2:
输入:numBottles = 10, numExchange = 3 输出:13 解释:上表显示了满水瓶的数量、空水瓶的数量、numExchange 的值,以及累计喝掉的水瓶数量。
提示:
1 <= numBottles <= 100
1 <= numExchange <= 100
原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 2.3 MB, 提交时间: 2024-03-31 21:44:35
func maxBottlesDrunk(numBottles, numExchange int) int { ans := numBottles // 一开始就全部喝完 for numBottles >= numExchange { // 有足够的空瓶 ans++ // 用 numExchange 个空瓶交换,然后喝掉,产生一个新的空瓶 numBottles += 1 - numExchange numExchange++ } return ans }
cpp 解法, 执行用时: 0 ms, 内存消耗: 7.4 MB, 提交时间: 2024-03-31 21:44:19
class Solution { public: int maxBottlesDrunk(int numBottles, int numExchange) { int ans = numBottles; // 一开始就全部喝完 while (numBottles >= numExchange) { // 有足够的空瓶 ans++; // 用 numExchange 个空瓶交换,然后喝掉,产生一个新的空瓶 numBottles += 1 - numExchange++; } return ans; } };
java 解法, 执行用时: 0 ms, 内存消耗: 39.9 MB, 提交时间: 2024-03-31 21:44:05
class Solution { public int maxBottlesDrunk(int numBottles, int numExchange) { int ans = numBottles; // 一开始就全部喝完 while (numBottles >= numExchange) { // 有足够的空瓶 ans++; // 用 numExchange 个空瓶交换,然后喝掉,产生一个新的空瓶 numBottles += 1 - numExchange++; } return ans; } }
python3 解法, 执行用时: 34 ms, 内存消耗: 16.5 MB, 提交时间: 2024-03-31 21:43:50
class Solution: def maxBottlesDrunk(self, numBottles: int, numExchange: int) -> int: ans = numBottles # 一开始就全部喝完 while numBottles >= numExchange: # 有足够的空瓶 ans += 1 # 用 numExchange 个空瓶交换,然后喝掉,产生一个新的空瓶 numBottles += 1 - numExchange numExchange += 1 return ans