Water Bottles — LeetCode 1518 Python Solution
- Problem
- #1518
- Pattern
- Math and Number Theory
- Reading time
- 2 min
- Source
- leetcode.com
The problem
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.
Example
- Input
- numBottles = 9, numExchange = 3
- Output
- 13
- Explanation
- You can exchange 3 empty bottles to get 1 full water bottle.
Python solution
class Solution:
def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
ans = numBottles
while numBottles >= numExchange:
numBottles -= numExchange - 1
ans += 1
return ansComplexity
| Measure | Complexity |
|---|---|
| Time | O(n) or O(1) |
| Space | O(1) auxiliary |
Pattern: Math and Number Theory
Find the closed form, the invariant, or the modular identity — and skip the loop entirely. LeetCode 1518. Water Bottles is filed here on both counts: the reference solution below belongs to the algorithm family this hub collects, and LeetCode tags it Math.
The math and number theory guide has the Python template for the pattern and the 485 LeetCode problems that use it.
Related problems
Frequently asked questions
- How hard is LeetCode 1518. Water Bottles?
- LeetCode 1518. Water Bottles is rated Easy on LeetCode.
- What topics does LeetCode 1518. Water Bottles cover?
- LeetCode 1518. Water Bottles is tagged Math and Simulation on LeetCode.