g1501_1600.s1518_water_bottles.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g1501_1600.s1518_water_bottles;
// #Easy #Math #Simulation #2022_04_09_Time_0_ms_(100.00%)_Space_40.5_MB_(71.92%)
/**
* 1518 - Water Bottles\.
*
* Easy
*
* 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://assets.leetcode.com/uploads/2020/07/01/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://assets.leetcode.com/uploads/2020/07/01/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`
**/
public class Solution {
public int numWaterBottles(int numBottles, int numExchange) {
int drunk = numBottles;
int emptyBottles = numBottles;
while (emptyBottles >= numExchange) {
int exchangedBottles = emptyBottles / numExchange;
drunk += exchangedBottles;
int unUsedEmptyBottles = emptyBottles % numExchange;
emptyBottles = exchangedBottles + unUsedEmptyBottles;
}
return drunk;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy