1658. Minimum Operations to Reduce X to Zero
https://leetcode.com/problems/minimum-operations-to-reduce-x-to-zero/
solution
任务转化为求等于(sum-x)的最长子串,等于时更新结果
class Solution:
def minOperations(self, nums: List[int], x: int) -> int:
target = sum(nums) - x
l = 0
prefix_sum = 0
res = 0
found = False
for r, num in enumerate(nums):
prefix_sum += num
while l <= r and prefix_sum > target:
prefix_sum -= nums[l]
l += 1
if prefix_sum == target:
found = True
res = max(res, r - l + 1)
return len(nums) - res if found else -1
时间复杂度:O(n) 空间复杂度:O(1)
Last updated