【leetcode 滑动窗口 C++】1658. Minimum Operations to Reduce X to Zero

1658. Minimum Operations to Reduce X to Zero

在这里插入图片描述

class Solution {
    
    
public:
    int minOperations(vector<int>& nums, int x) {
    
    
        int sum = 0;
        for(auto num : nums) sum += num;
        sum -= x;

        int ans = -1;
        uint32_t win = 0;
        for(int l = 0, r = 0; r < nums.size(); r++) {
    
    
            win += nums[r];
            while(l <= r && win - nums[l] >= sum) win -= nums[l++];
            if(win == sum) ans = max(ans, r - l + 1);
        }
        return ans == -1 ? -1 : nums.size() - ans;
    }
};

猜你喜欢

转载自blog.csdn.net/m0_37454852/article/details/114303202