File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
3356-zero-array-transformation-ii Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 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+ };
You can’t perform that action at this time.
0 commit comments