diff --git a/3356. Zero Array Transformation II b/3356. Zero Array Transformation II new file mode 100644 index 0000000..e0f1405 --- /dev/null +++ b/3356. Zero Array Transformation II @@ -0,0 +1,37 @@ +class Solution { +public: + int minZeroArray(vector& nums, vector>& queries) { + int n = nums.size(); + + auto check = [&](int k) { + vector mp(n + 1, 0); + for(int i = 0; i < k; i++) { + mp[queries[i][0]] += queries[i][2]; + mp[queries[i][1] + 1] -= queries[i][2]; + } + int sum = 0; + for(int i = 0; i < n; i++) { + sum += mp[i]; + if(sum < nums[i]) return 0; + } + return 1; + }; + + int l = 0, h = queries.size(); + + if(!check(h)) return -1; + + int k = -1; + while(l <= h) { + int mid = (l + h) / 2; + if(check(mid)) { + k = mid; + h = mid - 1; + } + else { + l = mid + 1; + } + } + return k; + } +};