[LeetCode] 1518. Water Bottles
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 瓶水。如果喝掉了水瓶中的水,那么水瓶就會變成空的。
給你兩個整數(shù) numBottles 和 numExchange ,返回你 最多 可以喝到多少瓶水。
思路
這是一道模擬題。題目說了每 numExchange 個空瓶可以換一瓶水,那么我們可以模擬這個過程,每喝掉 numExchange 瓶水,就去兌換一瓶水,直到 numBottles 喝光。注意兌換的水要加回 numBottles。
復(fù)雜度
時間O(n)
空間O(1)
代碼
Java實現(xiàn)
class Solution {
public int numWaterBottles(int numBottles, int numExchange) {
int count = 0;
while (numBottles >= numExchange) {
count += numExchange;
numBottles -= numExchange - 1;
}
return count + numBottles;
}
}

浙公網(wǎng)安備 33010602011771號