Skip to content

Commit b3b116d

Browse files
authored
Create 3362. Zero Array Transformation III1 (#801)
2 parents 151ef34 + 349e669 commit b3b116d

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

3362. Zero Array Transformation III1

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
public:
3+
int maxRemoval(vector<int>& nums, vector<vector<int>>& queries) {
4+
int n = nums.size(), i = 0, qi = 0, qn = queries.size(), res = 0;
5+
sort(queries.begin(), queries.end());
6+
priority_queue<int> maxEnd;
7+
vector<int> prefix(n + 1, 0);
8+
while (i < n) {
9+
prefix[i] += (i > 0 ? prefix[i - 1] : 0);
10+
nums[i] += prefix[i];
11+
if (nums[i] == 0) {
12+
i++;
13+
continue;
14+
}
15+
while (qi < qn && queries[qi][0] <= i) {
16+
maxEnd.push(queries[qi][1]);
17+
qi++;
18+
}
19+
while (nums[i] > 0 && !maxEnd.empty() && maxEnd.top() >= i) {
20+
prefix[i]--;
21+
prefix[maxEnd.top() + 1]++;
22+
nums[i]--;
23+
maxEnd.pop();
24+
res++;
25+
}
26+
if (nums[i] > 0)
27+
return -1;
28+
i++;
29+
}
30+
return qn - res;
31+
}
32+
};

0 commit comments

Comments
 (0)