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:
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:
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
换水问题。
超市正在促销,你可以用 numExchange 个空水瓶从超市兑换一瓶水。最开始,你一共购入了 numBottles 瓶水。如果喝掉了水瓶中的水,那么水瓶就会变成空的。
给你两个整数 numBottles 和 numExchange ,返回你 最多 可以喝到多少瓶水。
思路
这是一道模拟题。题目说了每 numExchange 个空瓶可以换一瓶水,那么我们可以模拟这个过程,每喝掉 numExchange 瓶水,就去兑换一瓶水,直到 numBottles 喝光。注意兑换的水要加回 numBottles。
复杂度
时间O(n)
空间O(1)
代码
Java实现
class Solution {public int numWaterBottles(int numBottles, int numExchange) {int count = 0;while (numBottles >= numExchange) {count += numExchange;numBottles -= numExchange - 1;}return count + numBottles;}
}