1518. Water Bottles LeetCode Solution

In this guide, you will get 1518. Water Bottles LeetCode Solution with the best time and space complexity. The solution to Water Bottles problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.

Table of Contents

  1. Problem Statement
  2. Complexity Analysis
  3. Water Bottles solution in C++
  4. Water Bottles solution in Java
  5. Water Bottles solution in Python
  6. Additional Resources
1518. Water Bottles LeetCode Solution image

Problem Statement of 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

Complexity Analysis

  • Time Complexity: O(\log numBottles)
  • Space Complexity: O(1)

1518. Water Bottles LeetCode Solution in C++

class Solution {
 public:
  int numWaterBottles(int numBottles, int numExchange) {
    int ans = numBottles;

    while (numBottles >= numExchange) {
      ans += numBottles / numExchange;
      numBottles = numBottles / numExchange + numBottles % numExchange;
    }

    return ans;
  }
};
/* code provided by PROGIEZ */

1518. Water Bottles LeetCode Solution in Java

class Solution {
 public:
  int numWaterBottles(int numBottles, int numExchange) {
    return numBottles + (numBottles - 1) / (numExchange - 1);
  }
};
// code provided by PROGIEZ

1518. Water Bottles LeetCode Solution in Python

N/A
# code by PROGIEZ

Additional Resources

See also  2683. Neighboring Bitwise XOR LeetCode Solution

Happy Coding! Keep following PROGIEZ for more updates and solutions.