当前位置: 首页 > news >正文

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

题目

        给你一个整数数组 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

http://www.mrgr.cn/news/3116.html

相关文章:

  • haproxy实验
  • 关于小型光伏电站气象站的介绍
  • 面试题目:(6)翻转二叉树
  • 【Nodejs】六、express框架
  • 深入浅出:你需要了解的用户数据报协议(UDP)
  • vue项目在线预览docx文件
  • MobileVit 系列算法
  • nvidia系列教程-AGX-Orin pcie网卡I350调试笔记
  • 一篇初学者入门Python匿名函数与Lambda表达式详细教程
  • Zookeeper的在Ubuntu20.04上的集群部署
  • AI秘境-墨小黑奇遇记 (七):掉发的代价:神经网络与“秃头效应”
  • generator函数和async/await
  • GBase数据库学习笔记:技术要点梳理
  • 类加载的过程与触发时机
  • 基于springboot养老院管理系统pf
  • 短视频矩阵工具种类繁多,一招教你轻松做选择!
  • STM32第十二节(中级篇):串口通信(第二节)——串口固件库函数以及串口发送和接收代码讲解
  • Redis相关介绍
  • 新手/小白看/java 一些基础问题
  • 视频编辑与制作软件哪个好 视频编辑与制作软件哪个好学