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

【leetcode】209. 长度最小的子数组

文章目录

    • 题目
    • 代码
      • 1. 暴力求解
      • 2. 滑动窗口

题目

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例 1:

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

示例 2:

输入:target = 4, nums = [1,4,4]
输出:1

示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

代码

1. 暴力求解

暴力求解: 18 / 21
思路:双循环

class Solution(object):def minSubArrayLen(self, target, nums):""":type target: int:type nums: List[int]:rtype: int"""# 暴力求解: 18 / 21 min_len = float("inf")for i in range(len(nums)):cur_sum = 0for j in range(i, len(nums)):cur_sum += nums[j]if cur_sum >= target:min_len = min(min_len, j -i +1)breakreturn min_len if min_len != float('inf') else 0

2. 滑动窗口

**思路:**根据滑动窗口算窗口下的总和,如果大于target,则窗口左边+1

class Solution(object):def minSubArrayLen(self, target, nums):""":type target: int:type nums: List[int]:rtype: int"""# 滑动窗口l = len(nums)left = 0right = 0sum = 0min_lenth = float("inf")while right < l:sum += nums[right]# 当前累计值大于等于targetwhile sum >= target:min_lenth = min(min_lenth, right - left + 1)sum -= nums[left]left += 1right += 1return min_lenth if min_lenth != float("inf") else 0
http://www.xdnf.cn/news/9209.html

相关文章:

  • LeetCode 高频 SQL 50 题(基础版)之 【连接】部分 · 上
  • 车载网关策略 --- 车载网关通信故障处理机制深度解析
  • ElasticSearch整合SpringBoot
  • 《深入解析UART协议及其硬件实现》-- 第一篇:UART基础与协议层详解
  • 一张Billing项目的流程图
  • 16. Git从入门到实践
  • Java-Set集合遍历的全面指南
  • 贝壳后端golang面经
  • 【信号与系统】【转载记录】漫谈《信号与系统》
  • 体绘制学习
  • Android开机向导定制(2)开机向导配置
  • 【免费】【无需登录/关注】多点矩阵计算器,计算任何坐标系转换
  • 【无标题】C++单例模式详解
  • 二次封装 Vuex for Uniapp 微信小程序开发
  • linux如何查看网络设备类型
  • 学者观察 | Web3.0的技术革新与挑战——北京理工大学教授沈蒙
  • 机器学习中的关键术语及其含义
  • 打造自己的开源组件:如何将 Starter 发布到 Maven Central?
  • 人工智能100问☞第34问:什么是语音识别与合成?
  • xilinx 7系列底层可配置逻辑块CLB资源简介
  • js 实现多并发任务处理
  • AI时代的弯道超车之第二十一章:AI会颠覆哪些行业?
  • 什么是MCP技术,跟http技术有什么区别
  • Excel 统计某个字符串在指定区域出现的次数
  • 低空经济管理系统设计方案
  • Spring Boot 3.4.6 中文文档上线
  • 深入理解 JDK、JRE 和 JVM 的区别
  • CellularPro 1.8.6.1 | 提升网络速度,抢到更多基站的速度
  • Netty创新架构突破链接数瓶颈技术,如何应用于新能源汽车智慧充电桩?
  • Redis 容器启动失败Fatal error loading the DB, check server logs. Exiting.的解决方法