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

力扣刷题——长度最小的子数组

双层暴力for循环已经超出了时间限制

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:l=len(nums)min_len=float('inf')for i in range(l):cur_sum=0for j in range(i,l):cur_sum+=nums[j]#双层暴力for循环,第二个for循环内,当签名集合之和与当前元素相加大于或等于s,则黄if cur_sum>=target:min_len=min(min_len,j-i+1)#代表已经找到集合breakreturn min_len if min_len!=float('inf') else 0

滑动窗口
窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。
窗口的起始位置如何移动:如果当前窗口的值大于等于s了,窗口就要向前移动了(也就是该缩小了)。
窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:length=len(nums)l=0#左指针r=0#右指针min_len=float('inf')cur_sum=0while r<length:#当右指针小于长度时,继续往右滑cur_sum+=nums[r]while cur_sum>=target:#当累加值大于目标值时,取最小的长度min_len=min(min_len,r-l+1)#为下一次遍历做准备,如果大于S,那么左边减去一个元素,再看是否大于Scur_sum-=nums[l]#左指针右滑一位l+=1#当集合不大于S,小于了S,那么右指针往右滑动一位r+=1return min_len if min_len!=float('inf') else 0

相关文章:

  • 在 Qt 开发中,.toLocal8Bit().constData() 和 .toUtf8()有什么区别
  • 【React源码解析】初识JSX
  • You Only Look Once Unified, Real-Time Object Detection论文笔记
  • django ReturnDict 如何修改内容
  • C++(从C到C++)
  • Java系统开发:前端与后端的协同开发实践
  • 老项目重构难题破解:飞算 JavaAI 如何实现技术升级突围
  • 数字ic后端设计从入门到精通7(含fusion compiler, tcl教学)sta时序分析
  • Java基础学习-多线程
  • python+uniapp基于微信小程序健康管理系统
  • 数字电路研究的是直流信号还是交流信号
  • BUU reverse (随机做题)
  • Postman中变量的使用
  • idea中配置svn及提交提示“未检测到更改”提示
  • uni-app插件,高德地图、地图区域绘制、定位打卡
  • 海报在线制作系统小程序ThinkPHP+UniApp
  • [论文阅读] 人工智能 + 软件工程 | 用大语言模型架起软件需求形式化的桥梁
  • 无人机数据处理系统设计与难点
  • Uniapp条件编译完全指南:跨平台开发的核心技术
  • 跨越延迟障碍,从15秒到2毫秒,通过MODBUS转ETHERNET IP网关将变送器接入AB PLC
  • wordpress 宠物/商丘seo排名
  • 公司网站费用/附近的成人电脑培训班
  • wordpress可以添加字段吗/北京seo怎么优化
  • 苏州知名网站建设定制/快速排名seo软件
  • 池州网站优化公司/网络营销的目的是什么
  • weirdcore制作网站/自己怎么建网站