当前位置: 首页> 教育> 幼教 > 将 x 减到 0 的最小操作数(LeetCode)

将 x 减到 0 的最小操作数(LeetCode)

时间:2025/7/22 1:02:04来源:https://blog.csdn.net/weixin_74254879/article/details/141367161 浏览次数:0次

题目

        给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。

        如果可以将 x 恰好 减到 0 ,返回 最小操作数 ;否则,返回 -1 。

解题

"""
时间复杂度:O(n),其中 n 是数组的长度。滑动窗口的操作只需要遍历数组一次。
空间复杂度:O(1),除了输入输出,几乎没有使用额外的空间。
"""def minOperations(nums, x):target = sum(nums) - xif target < 0:return -1if target == 0:return len(nums)max_len = -1current_sum = 0left = 0for right in range(len(nums)):current_sum += nums[right]while current_sum > target:current_sum -= nums[left]left += 1if current_sum == target:max_len = max(max_len, right - left + 1)return len(nums) - max_len if max_len != -1 else -1nums = [1, 1, 4, 2, 3]
x = 5
print(minOperations(nums, x))  # 输出: 2
关键字:将 x 减到 0 的最小操作数(LeetCode)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: