1658. Minimum Operations to Reduce X to Zero
https://leetcode.com/problems/minimum-operations-to-reduce-x-to-zero/
Input: nums = [1,1,4,2,3], x = 5
Output: 2
Explanation: The optimal solution is to remove the last two elements to reduce x to zero.Input: nums = [5,6,7,8,9], x = 4
Output: -1Input: nums = [3,2,20,1,1,3], x = 10
Output: 5
Explanation: The optimal solution is to remove the last three elements and the first two elements (5 operations in total) to reduce x to zero.class Solution:
def minOperations(self, nums: List[int], x: int) -> int:
N = len(nums)
l, r, s, cnt, res = 0, N - 1, 0, 0, float('inf')
while l < N and s + nums[l] <= x:
s += nums[l]
l += 1
cnt += 1
if s == x: res = min(res, cnt)
if l == N and s < x: return -1
l -= 1
while r >= 0:
cnt += 1
s += nums[r]
while l >= 0 and s > x:
cnt -= 1
s -= nums[l]
l -= 1
if s == x: res = min(res, cnt)
r -= 1
return -1 if res == float('inf') else res
Last updated