20. Minimum Operations to Reduce X to Zero
Last updated
Last updated
class Solution {
public:
int minOperations(vector<int>& nums, int x) {
int n = nums.size();
int sum =0;
for(int i:nums) sum += i;
int i=0;
int maxlen = INT_MIN, currsum=0;
int target = sum -x;
bool found = false;
for(int j=0;j<n;j++){
currsum += nums[j];
while(i<=j && currsum>target){
currsum -= nums[i];
i++;
}
if(currsum == target){
found = true;
maxlen = max(maxlen, j-i+1);
}
}
return found? n-maxlen: -1;
}
};