Minimum Number of Taps to Open to Water a Garden LeetCode solution in Python
1class Solution:2def minTaps(self, n: int, ranges: List[int]) -> int:3max_range = [0] * (n + 1)45for i, r in enumerate(ranges):6left, right = max(0, i - r), min(n, i + r)7max_range[left] = max(max_range[left], right - left)89# it's a jump game now10start = end = step = 01112while end < n:13step += 114start, end = end, max(i + max_range[i] for i in range(start, end + 1))15if start == end:16return -11718return step