Minimum Number of Taps to Open to Water a Garden LeetCode solution in Java

1
class Solution {
2
public int minTaps(int n, int[] ranges) {
3
Integer[] idx = IntStream.range(0, ranges.length).boxed().toArray(Integer[]::new);
4
Arrays.sort(idx, Comparator.comparingInt(o -> o - ranges[o]));
5
int ans = 1, cur = 0, end = 0;
6
for (int i = 0; i < ranges.length && end < n; i++) {
7
int j = idx[i];
8
if (j - ranges[j] > cur) {
9
cur = end;
10
ans++;
11
}
12
if (j - ranges[j] <= cur) {
13
end = Math.max(end, j + ranges[j]);
14
}
15
}
16
return end < n ? -1 : ans;
17
}
18
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0