All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1501_1600.s1518_water_bottles.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
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