LeetCode 209 Minimum Size Subarray Sum 题目解析和python代码
题目:
Given an array of positive integers nums and a positive integer target, return the minimal length of a
subarray
whose sum is greater than or equal to target. If there is no such subarray, return 0 instead.
Example 1:
Input: target = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: The subarray [4,3] has the minimal length under the problem constraint.
Example 2:
Input: target = 4, nums = [1,4,4]
Output: 1
Example 3:
Input: target = 11, nums = [1,1,1,1,1,1,1,1]
Output: 0
Constraints:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104
Follow up: If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log(n)).
题目解析:
这里我们可以使用 sliding window 的技巧。
我们可以使用两个 pointers,一个是 start 一个是 end,两个指针都从array的开头开始。
向右移动 end 指针来提高 window 的大小,每一次移动指针都把 nums[end] 添加到现在的和。
当这个和大于或等于 target 时,我们要开始缩短 subarray 的长度。于是我们开始移动 start 这个指针来缩小 window 的大小。通过不停的向右移动 start 指针,直到找到最短的 subarray 的长度。
class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:start = 0curr_sum = 0min_len = float('inf')for end in range(len(nums)):curr_sum += nums[end]while curr_sum >= target:min_len = min(min_len, end - start + 1)curr_sum -= nums[start]start += 1return min_len if min_len != float('inf') else 0
Time complexity 是 O(n)。
Space complexity 是 O(1)。
相关文章:
LeetCode 209 Minimum Size Subarray Sum 题目解析和python代码
题目: Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray, return 0 instead. Example 1: Input: target 7, nu…...
C# 入坑JAVA 潜规则 注解 列表 listMch,该列表存储了一个映射(Map)的集合 等 入门系列3
java 项目结构 文件说明 潜规则 java入门-CSDN博客 C# 入坑JAVA 潜规则 大小写敏感文件名和类名 枚举等 入门系列2-CSDN博客 java注解 好像和C# 特性 差不多 Data Builder NoArgsConstructor AllArgsConstructor 在Java中,Data、Builder、NoArgsConstructor和Al…...
2024年9月个人工作生活总结
本文为 2024年9月工作生活总结。 研发编码 vuepress构建的几个问题 某vuepress项目,是我在3年多以前自行构想自行着手搞的,主要用于将一些常用的数据文件(markdown样式)渲染成html网页文件,在自建服务程序里开启访问…...
JVM有哪些参数以及如何使用
JVM(Java虚拟机)参数用于调整和优化Java应用程序的性能和行为。这些参数主要分为标准参数、非标准参数(以-X开头)和高级参数(以-XX开头)。以下是一些常见的JVM参数及其使用方法: 标准参数 -se…...
STM32编码器接口解析及抗噪声措施探讨
1. 引言 在现代控制系统中,编码器扮演着非常重要的角色。它就像一个精密的测量工具,可以告诉我们机械部件的位置和运动状态。在STM32微控制器中,编码器接口可以轻松地与各种编码器连接,实现精确的控制。我将在这里探讨STM32编码器…...
微软发布Windows 11 2024更新,新型Copilot+ AI PC功能亮相
前言 微软在Windows 11的2024更新中加强了对人工智能的应用,推出了新功能Copilot。 此次更新的版本号为26100.1742,Copilot将首先在Windows Insider中推出,计划于11月向特定设备和市场推广,用户需开启“尽快获取最新更新”选项以…...
鹏哥C语言68-70---位操作符+单目操作符+关系操作符
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <time.h> //--------------------------------------------------------------------------------------------------------4.位操作符 // &----按(2进制…...
showdoc二次开发
showdoc用的vue版本老,需要安装老版本nodejs,比如node 14.21.3 win32-x64-93_binding.node问题 https://github.com/sass/node-sass/releases 下载 web_src\node_modules\node-sass\vendor\win32-x64-93 下面重命名为binding.node 代理到php后端&…...
力扣16~20题
题16(中等): 思路: 双指针法,和15题差不多,就是要排除了,如果total<target则排除了更小的(left右移),如果total>target则排除了更大的(rig…...
Pikachu-Sql-Inject -基于boolian的盲注
基于boolean的盲注: 1、没有报错信息显示; 2、不管是正确的输入,还是错误的输入,都只显示两种情况,true or false; 3、在正确的输入下,输入and 1 1/and 1 2发现可以判断; 布尔盲注常用函数&…...
最后30天,你的系统集成项目管理工程师备考进度到哪儿了?
十一长假归来好! 此次归来之后,2024年下半年软考倒计时就从4字头切换到了3字头,今天距离考试还有32天! 那么问题来了,临近考试还有30天左右的时候,你的备考进度到哪里了呢? 其实无论目前你的实际…...
网络安全事件的发生,主要原因是什么
网络安全事件的发生,主要原因涉及多个方面,包括技术漏洞、人为因素、经济利益驱动、恶意软件和病毒威胁、社会工程学攻击、内部人员恶意行为、供应链安全问题以及法律法规的不完善等。以下是对这些原因的详细分析: 技术漏洞: 软件…...
【leetcode】274.H指数
为了方便,将 citations 记为 cs。 所谓的 h 指数是指一个具体的数值,该数值为“最大”的满足「至少发表了 x 篇论文,且每篇论文至少被引用 x 次」定义的合法数,重点是“最大”。 用题面的实例 1 来举个 🌰࿰…...
1.Python 引入(字面量、注释、变量、数据类型、数据类型转换、标识符、运算符、字符串扩展)
一、字面量 1、基本介绍 在代码中,被写直接下来的、不需要通过变量存储的值,称之为字面量 2、常用值类型 类型说明数字(Number)整数(int),例如:10、-10浮点数(float&…...
【AI知识点】梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)
梯度消失(Vanishing Gradient) 和梯度爆炸(Exploding Gradient) 是神经网络训练中的常见问题,特别是在深层神经网络(DNN)或递归神经网络(RNN)中。这两者主要与反向传播算…...
在 ArkTS 网络请求中,重新封装一下 http 模块
在ArkTS中,重新封装http模块可以提供一个更简洁、更易于使用的API,同时隐藏底层细节,使开发者能够更专注于业务逻辑。以下是一个简单的示例,展示了如何重新封装鸿蒙系统的kit.NetworkKit中的http模块: // 创建一个新的…...
Microsoft 更新 Copilot AI,未來將能使用語音並看到你瀏覽的網頁
不過受到 Recall 事件的影響,更新的推出將更緩慢謹慎。 Microsoft 也同步對其網頁版及行動版的 Copilot AI 進行大改版。這主要是為網頁版換上了一個較為簡單乾淨的介面,並增加了一些新的功能,像是 Copilot Voice 能讓你與 AI 助手進行對話式…...
系统架构设计师-论文题(2021年下半年)
1.试题一 论面向方面的编程技术及其应用针对应用开发所面临的规模不断扩大、复杂度不断提升的问题,面向方面的编程Aspect Oriented Programming,AOP技术提供了一种有效的程序开发方法。为了理解和完成一个复杂的程序,通常要把程序进行功能划分和封装。一…...
selenium的webdriver常用方法和属性介绍(2)
selenium的webdriver介绍 从selenium导入webdriver模块,在pycharm中跳转webdriver模块的__init__.py文件,内容如图所示:从selenium包的子目录中导入了很多模块并做了重命名,用于支持如下 Chrome/Edge/Ie/Firefox/Safari浏览器。 使…...
73.【C语言】C/C++的内存区域划分
目录 1.内存里的几个区域 2.示意图 3.解释 1.内存里的几个区域 除了耳熟能详的栈区,堆区,静态区,还有内核空间,内存映射段,数据段,代码段 2.示意图 3.解释 栈区(stack area):局部变量,函数参数,返回数据,返回地址 内存映射段:将文件映射到内存 映射的含义: 如果看过李忠…...
SIM800C模块硬件连接避坑指南:从USB-TTL调试到STM32F407实战接线
SIM800C模块硬件连接避坑指南:从USB-TTL调试到STM32F407实战接线 在嵌入式开发中,GSM模块的硬件连接往往是项目成功的第一步,也是最容易踩坑的环节。SIM800C作为一款经典的工业级GSM/GPRS模块,其稳定性和性价比备受开发者青睐&…...
如何构建智能的多显示器窗口布局持久化解决方案
如何构建智能的多显示器窗口布局持久化解决方案 【免费下载链接】PersistentWindows fork of http://www.ninjacrab.com/persistent-windows/ with windows 10 update 项目地址: https://gitcode.com/gh_mirrors/pe/PersistentWindows PersistentWindows 是一个开源工具…...
Windows热键冲突终极排查指南:5分钟快速定位占用进程
Windows热键冲突终极排查指南:5分钟快速定位占用进程 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾经…...
Gitblit服务端在Windows上安装后启动失败?别慌,手把手教你排查‘Failed creating java’这个经典错误
Gitblit服务端Windows启动报错全攻略:从"Failed creating java"到完美解决 当你满怀期待地在Windows服务器上部署Gitblit,准备为团队搭建一个轻量级的Git代码托管平台时,突然在服务启动环节遭遇"Failed creating java"的…...
从零构建智能体工作流引擎:核心架构、实现与生产级实践
1. 项目概述:从零构建一个智能体工作流引擎最近在GitHub上看到一个名为agentkit的项目,来自BCG X的官方仓库。这个标题立刻引起了我的兴趣,因为它直指当前AI应用开发中的一个核心痛点:如何高效、可靠地编排和管理多个AI智能体&…...
小白程序员必看!收藏这份Agent入门指南,抢占未来运维高薪岗位
本文用通俗易懂的语言解释了什么是AI Agent,将其类比为能自主决策并调用工具的“实习生”,强调其与普通AI聊天的区别在于能自动完成任务。文章详细阐述了Agent的“感知-思考-行动”工作流程,并通过运维场景对比,展示了Agent在告警…...
Godot引擎集成CEF实现Web混合渲染:gdcef项目架构与实战指南
1. 项目概述与核心价值最近在折腾一个老项目的现代化改造,需要把传统的桌面应用嵌入到Web视图中,实现混合渲染。在技术选型时,我绕不开一个名字:CEF,也就是Chromium Embedded Framework。它几乎是桌面应用内嵌浏览器控…...
苏峻:一个“产品偏执狂”的20年跨界史,从讲台到造车,他到底在疯什么?icar
苏峻:一个“产品偏执狂”的20年跨界史,从讲台到造车,他到底在疯什么?一个50岁的清华大学设计学博士,当过15年大学老师,做过空气净化器,卖过200万台,现在又跑去造车。有人说他是疯子&…...
从 Palantir Ontology 到企业 AI 决策系统
这几年,大模型把企业 AI 的想象空间一下子拉高了。很多公司都已经能做聊天、做问答、做检索、做 Copilot,甚至做一些初步的 Agent。但真正往生产里推,很快就会撞到几个老问题:模型能说,却未必真懂业务;能总…...
终端工作空间新选择:从 tmux 到 Zellij 的迁移与实战
1. 为什么需要从 tmux 迁移到 Zellij 作为一个用了五年 tmux 的老用户,我最初对 Zellij 这个"新玩具"是持怀疑态度的。直到有一次在远程服务器上调试时,tmux 的窗格突然卡死,所有工作进度瞬间归零,我才开始认真寻找替代…...
