HTMLify
minimum-sprinklers.py
Views: 3 | Author: prakhardoneria
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class Solution: def minMen(self, arr): n = len(arr) max_reach_at = [-1] * n for i in range(n): if arr[i] != -1: left = max(0, i - arr[i]) right = min(n - 1, i + arr[i]) max_reach_at[left] = max(max_reach_at[left], right) workers = 0 current_end = -1 farthest = -1 for i in range(n): farthest = max(farthest, max_reach_at[i]) if farthest < i: return -1 if i > current_end: workers += 1 current_end = farthest return workers |