Medium
You are given two integers numBottles
and numExchange
.
numBottles
represents the number of full water bottles that you initially have. In one operation, you can perform one of the following operations:
numExchange
empty bottles with one full water bottle. Then, increase numExchange
by one.Note that you cannot exchange multiple batches of empty bottles for the same value of numExchange
. For example, if numBottles == 3
and numExchange == 1
, you cannot exchange 3
empty water bottles for 3
full bottles.
Return the maximum number of water bottles you can drink.
Example 1:
Input: numBottles = 13, numExchange = 6
Output: 15
Explanation: The table above shows the number of full water bottles, empty water bottles, the value of numExchange, and the number of bottles drunk.
Example 2:
Input: numBottles = 10, numExchange = 3
Output: 13
Explanation: The table above shows the number of full water bottles, empty water bottles, the value of numExchange, and the number of bottles drunk.
Constraints:
1 <= numBottles <= 100
1 <= numExchange <= 100
public class Solution {
public int maxBottlesDrunk(int numBottles, int numExchange) {
int emptyBottles = numBottles;
int bottleDrinks = numBottles;
while (numExchange <= emptyBottles) {
bottleDrinks += 1;
emptyBottles = 1 + (emptyBottles - numExchange);
numExchange++;
}
return bottleDrinks;
}
}