LeetCode/go/zero-array-transformation-ii.go

26 lines
425 B
Go

package main
func minZeroArray(nums []int, queries [][]int) int {
k := 0
sum, diffs := 0, make([]int, len(nums)+1)
for i, x := range nums {
for sum+diffs[i] < x {
k++
if k > len(queries) {
return -1
}
left, right, maxDec := queries[k-1][0], queries[k-1][1], queries[k-1][2]
if right >= i {
diffs[max(left, i)] += maxDec
diffs[right+1] -= maxDec
}
}
sum += diffs[i]
}
return k
}