Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int maxsubarraylength(vector<int>& a,int k)
- {
- //return the max subarray length whose sum is k
- if(k<0) return -1;
- int l = 0, temp = 0, i = 0, len = 0;
- while (i <a.size())
- {
- temp += a[i];
- if (temp < k) {
- i++; continue;
- }
- else if (temp == k) {
- len = max(len, (i - l + 1));
- i++; continue;
- }
- else {
- //temp>k
- temp-=a[l]; l++;
- temp-=a[i];
- continue;
- }
- }
- if(len==0) return -1;
- return len;
- }
- int minOperations(vector<int>& nums, int x) {
- int sum=0;
- for(auto i:nums) sum+=i;
- if(sum==x) return (nums.size());
- int tempans=maxsubarraylength(nums,sum-x);
- if(tempans==-1) return -1;
- return (nums.size()-tempans);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement