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
- Problem Statement
- Complexity Analysis
- Water Bottles solution in C++
- Water Bottles solution in Java
- Water Bottles solution in Python
- Additional Resources

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
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.