当前位置: 首页 > 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
http://www.dtcms.com/a/252585.html

相关文章:

  • 在 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
  • git操作练习(2)
  • Gartner发布网络安全组织设计指南:设计网络安全组织的五项原则和六种主要安全组织类型
  • RS232转Profinet网关推动车间数字化转型
  • Rust 机器学习
  • 基于proxysql实现MySQL读写分离
  • 1:9.7p1-7ubuntu4.3 安全加固升级9.9p2-2_SSH
  • SpringBoot 插件化架构的4种实现方案
  • 指针篇(2)- const修饰,野指针,assert断言,指针的使用和传址调用
  • Happy-LLM 第一章 NLP概述
  • Java并发编程实战 Day 25:秒杀系统的并发设计与实现