We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 5e80789 commit 3c3354dCopy full SHA for 3c3354d
3356-zero-array-transformation-ii/3356-zero-array-transformation-ii.cpp
@@ -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