class Solution:
def minOperations(self, nums: List[int], x: int) -> int:
target = sum(nums) - x
if target < 0:
return -1
curr_sum = 0
max_window_size = -1
left = 0
for right in range(len(nums)):
# Incorporate incoming number
curr_sum += nums[right]
# Make sure window satisfies criteria
while left <= right and curr_sum > target:
curr_sum -= nums[left]
left += 1
# Check if window sum is exactly equal to target
if curr_sum == target:
max_window_size = max(max_window_size, right - left + 1)
return -1 if max_window_size == -1 else len(nums) - max_window_size