26 lines
425 B
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
|
|
}
|