Skip to content

Commit 3c3354d

Browse files
committed
Time: 68 ms (46.52%), Space: 346 MB (35.54%) - LeetHub
1 parent 5e80789 commit 3c3354d

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
public:
3+
int minZeroArray(vector<int>& nums, vector<vector<int>>& queries) {
4+
int n = nums.size();
5+
int q = queries.size();
6+
int low = 0, high = q;
7+
8+
auto ok = [&](int mid) {
9+
vector<int> dif(n + 5);
10+
for (int i = 0; i < mid; i++) {
11+
dif[queries[i][0]] += queries[i][2];
12+
dif[queries[i][1] + 1] -= queries[i][2];
13+
}
14+
for (int i = 1; i <= n; i++) dif[i] += dif[i - 1];
15+
for (int i = 0; i < n; i++) {
16+
if (nums[i] - dif[i] > 0) return false;
17+
}
18+
return true;
19+
};
20+
int ans = -1;
21+
while (low <= high) {
22+
int mid = low + (high - low) / 2;
23+
if (ok(mid)) {
24+
ans = mid;
25+
high = mid - 1;
26+
} else {
27+
low = mid + 1;
28+
}
29+
}
30+
return ans;
31+
}
32+
};

0 commit comments

Comments
 (0)