每日算法 - 长度最小的子数组

FPGA实现CAN接口(SJA1000) 学无止境,善于积累,每天积累一点点,成功就在眼前,加油! 1 CAN总线简介 CAN(Controller Area Network,控制器局域网 )总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有... 阅读详情

目录

题目

思路

代码

总结


题目

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。

示例: 

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

如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 


思路

双指针

https://leetcode-cn.com/problems/minimum-size-subarray-sum/solution/chang-du-zui-xiao-de-zi-shu-zu-by-leetcode-solutio/

 

 


代码

 public int minSubArrayLen(int[] nums, int s){
        int len = nums.length;
        int left = 0, right = 0;
        int res = Integer.MAX_VALUE;
        int sum = 0;

        if (len == 0 ){
            return 0;
        }

        while (right < len){
            sum += nums[right];
            while (sum >= s){
                // 右移左指针
                res = Math.min(res, right - left + 1);
                sum -= nums[left];
                left++;
            }
            right++;
        }

        return res == Integer.MAX_VALUE?0:res;
    }

 

 


总结

1、双指针

 

Python爬虫实战:如何抓取POI信息(公共场所)位置信息 获取公共场所的信息:如餐厅、商店、医院、景点等。抓取POI的基本信息:如名称、类别、地址、评分等。获取POI的地理坐标:经度和纬度信息。存储POI数据:将抓取到的POI信息存储到本地数据库中。通过本篇文章,我们详细介绍了如何使用Python爬虫抓取POI信息。通过Google Maps API和OpenStreetMap(Overpass API),我们展示了如何获取餐厅、商店、医院等公共场所的位置信息,并进一步探讨了如何处理分页、存储数据以及反爬虫策略。 阅读详情

相关推荐

LLM and Embedding区别

LLM(大语言模型)和 Embedding(嵌入)是自然语言处理(NLP)中的两个核心概念,它们的核心区别在于。Embedding 计算向量。

u010674101的专栏 1874

581. 最短无序连续子数组 golang

581. 最短无序连续子数组 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到的子数组应是最短的,请输出它的长度。 示例 1: 输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。 说明 : 输入的数组长度范围在 [1, ...

csdn_kou的博客 245

解密CANoe数据回放:从BLF到ASC的格式转换与优化策略

本文深入解析CANoe数据回放中BLF与ASC格式的转换与优化策略,帮助工程师高效处理汽车电子测试数据。详细介绍了两种格式的特性、转换方法及性能优化技巧,包括CANoe内置功能、命令行自动化和第三方工具应用,提升故障诊断和系统验证效率。

weixin_28331555的博客 537

C++输入一个正整数 n ,返回一个最小正整数 m ( m 至少是2位数),使得 m 的各位乘积等于 n

原题目为:输入一个正整数 n ,返回一个最小正整数 m ( m 至少是2位数),使得 m 的各位乘积等于 n, 例如输入36,输出49,输入100,输出455,对于某个 n 不存在这样的 m ,请返回-1。 解决思路: **首先如果n是负数,则不存在m直接返回:-1. 其次如果n是个位数,则m返回:10+n。 对于任意输入的n,首先使用i=2~9依次尝试是否能够整除,若能整除则在二维容器中添加一行...

御风冥的博客 2823

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 495

VASP+Multiwfn+VMD静电势计算与可视化全流程解析

静电势是表征分子与材料表面电荷分布的关键物理量,它通过求解泊松方程,将电子密度与原子核电荷在空间中的贡献结合起来,直观揭示体系的电子富集与缺失区域。这一性质在理解化学反应活性、分子间相互作用(如氢键、卤键)以及材料表面性质方面具有重要价值。在计算材料科学与量子化学领域,基于第一性原理计算获得高精度电子结构数据后,如何将其转化为可直观分析的静电势图,是连接理论计算与物理解释的关键技术环节。本文聚焦于构建一条高效、可控的端到端工作流,详细解析如何利用VASP进行高精度电子密度计算,通过专业波函数分析软件Mult

weixin_33733810的博客 430

LeetCode 209. 长度最小的子数组Golang版

LeetCode 209. 长度最小的子数组Golang版 1. 问题描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 2. 思路 滑动窗口 3. 代码 func minSubArrayLen(target int, nums []int) int { var res int = l

菜到不敢run 299

Sobel原理及计算过程详解

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的。接下来,我们将使用Sobel算子计算这个点的梯度值。

2301_76461741的博客 1万+

给定一个整数n,输出这个数的位数,顺序、逆序输出每一为数

#include<stdio.h> #include<math.h> int Count(long long n)//得到这个数,计算位数 { if(n == 0) { return 1; } int tmp = 0; while(n !=0) { tmp ++; n /= 10; } return tmp; } void PrintReverse(long long n)...

weixin_45729759的博客 1452

OPC与AI智能体集成实战:一人公司的技术栈构建与避坑指南

1. 先搞清楚“一人公司”和“AI工具”到底在解决什么问题 最近看到不少关于“裸辞搞OPC一人公司”和“AI时代骗局”的讨论,结合搜索热词里高频出现的 openclaw 、 AI编程 、 OPC ,我觉得有必要把这里面的水搅一搅,说点实在的。 首先得拆开看。标题里混了三个东西: 一人公司 、 OPC/OpenClaw 、 AI培训 。它们被放在一起讨论“骗局”,但本质上解决的是不同层面的问题。 一人公司 ,或者说个人工作室、独立开发者模式,核心是 用最小化团队(甚至一个人)去承接项目、开发产品或提供服务 。

weixin_29038345的博客 320

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

本文全面解析Modbus RTU通信协议,详细介绍其报文格式、功能码定义及典型应用场景,并手把手指导如何将FreeMODBUS协议栈移植到嵌入式平台。内容涵盖从底层硬件驱动配置、协议栈移植到主机/从机通信测试的全流程,重点讲解移植过程中的常见问题及解决方案。文章最后提供经过实测的完整项目源码,帮助开发者快速实现稳定的Modbus RTU通信功能。

Bit_Dong的博客 2926

子数组的最小值之和

子数组的最小值之和 给定一个整数数组 A,找到 min(B) 的总和,其中 B 的范围为 A 的每个(连续)子数组。 由于答案可能很大,因此返回答案模 10^9 + 7。 示例: 输入:[3,1,2,4] 输出:17 解释: 子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。 最小值为 3,1,2,4,1,1,2,1,...

zero4eva的专栏 1678

上海计算机学会2020年5月月赛C++乙组T2经济普查

中国正在以前所未有的力度推进脱贫攻坚,国家计划在2020年使得在现行标准下的贫困人口实现全面脱贫,为此,需要对居民的经济状况进行普查。 题目描述 给定一个正整数n,表示人口数量。一开始,每个居民拥有的财产记为a1​,a2​,⋯,an​,财产可能发生两种变化: 一种来源于个体,由某个居民的经济活动而产生。在某个时刻,某个居民的财产会直接变成某个数值,可能升高也可能降低。 一种来源于政策,在某个时刻,国家会对财产低于某个标准线全部的居民,实施政策支持,使得他们的财产全部正好到达标准线。 给定这些变

长春高老师编程 907

每日一题算法——长度最小的子数组

精髓在于:先让这个滑动窗口尾端不断增大,当它大于等于target时,先判断此时与子数组长度是否需要更新,判断完成之后,这时可以将其头部后移。这道题目暴力解法当然是 两个for循环,然后不断的寻找符合条件的子序列,时间复杂度很明显是O(n^2)。后面力扣更新了数据,暴力解法已经超时了。时间复杂度:O(n^2)空间复杂度:O(1)

weixin_73605337的博客 430

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

每日算法练习:LeetCode 209. 长度最小的子数组 ✅

核心考点:本题的核心是 ** 滑动窗口(双指针)** 的应用,利用数组元素全为正的特性,将暴力枚举的O(n²)复杂度优化到O(n),是面试中考察数组优化的经典题目。关键逻辑:滑动窗口的核心是「右指针扩张,左指针收缩」,只有当窗口和满足条件时才收缩左指针,保证每个元素最多被访问两次,时间复杂度线性。进阶拓展:前缀和 + 二分查找是通用解法,不依赖元素全为正,适合处理更复杂的子数组和问题,是面试中拓展思路的好方向。易错点初始minLen设为,避免遗漏边界情况;窗口长度计算为,不要漏加1;

wfbcg的博客 402

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[算法]LeetCode每日一题--209长度最小的子数组(Java)

DailyChallenge 209. 长度最小的子数组 20200628 难度:中等 题目描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。 进阶: 如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法

shinezzz的博客 275

算法每日双题精讲——滑动窗口(长度最小的子数组,无重复字符的最长子串)

本文聚焦算法中的滑动窗口算法,通过“长度最小的子数组”和“无重复字符的最长子串”两道经典题目进行精讲。滑动窗口利用双指针界定动态窗口,在数组或字符串上滑动以求解。对于“长度最小的子数组”,初始化指针与变量,通过移动指针扩展与收缩窗口,找到满足和≥目标的最小子数组长度。“无重复字符的最长子串”则借助集合记录窗口内字符,根据字符重复性移动指针并更新最长子串长度。文章展示了滑动窗口算法在处理此类问题时的高效性与灵活性,文末还设置投票环节,引导读者思考算法关键难点,助力读者深入理解滑动窗口算法。

A Charmer 的博客 4002

【每日一道算法题】有序数组的平方、长度最小的子数组

本人是一名在java后端寻路的小白,希望记录此博客来帮助自己理解和日后复习,希望也能够帮助到你。

cy的Java学习笔记 1549

力控算法每日一练:209. 长度最小的子数组(java)

209. 长度最小的子数组(java)

2301_77695569的博客 664

每日一题算法:2020年6月28日 长度最小的子数组 minSubArrayLen

2020年6月28日 长度最小的子数组 minSubArrayLen 默认格式: class Solution { public int minSubArrayLen(int s, int[] nums) { } } 解题思路: 看完题目,四个字,滑动窗口,用两个指针表示头和尾部,如果内部的和比S大,那么向右移动头部,让和变小。如果和小于S,那么向右移动尾部,让和变大。直到尾部到达末尾并且头部的和小于S。 今天时间来不及,所以写的粗糙了一些,可以做更多优化的。 public

I12XXXXXLbull的博客 660

每日一道算法题LeetCode209:Minimum Size Subarray Sum(长度最小的子数组)

长度最小的子数组题目分析题解暴力滑动数组总结 题目 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 题目链接:link. 分析 首先最简单的就是暴力求解,两重循环,找到最短的子数组即可。时间复杂度接近O(n2) 暴力之后,我们自然而然地可以想到用滑动窗口来优化解法,将双重循环变为一重循环即可。 题解 暴力 使用两重循环,值得注意的是,在内循环中,并不需要一直往后找直到sum比s大,内循环次数

Alan0_0的博客 291

Java算法 每日一题(五) 编号209:长度最小的子数组

编号209:长度最小的子数组

jiayibingdong的博客 314

C++ 优选算法 力扣 209.长度最小的子数组 滑动窗口 (同向双指针)优化 每日一题 详细题解

本文解析LeetCode 209题“长度最小的子数组”,聚焦滑动窗口算法的应用。题目要求找到和≥目标值的最短连续子数组,否则返回0。 暴力解法因O(n²)复杂度超时,而滑动窗口利用数组元素为正整数的单调性,通过双指针left和right动态维护区间:右指针扩大窗口至和达标,左指针收缩尝试更短有效窗口,将复杂度降至O(n)。 文章拆解代码实现,分析坑点,说明滑动窗口适用场景,并提及可举一反三解决的类似问题,为同类区间问题提供思路。

Q741_147的博客 1078

算法每日一题 Day09|滑动窗口求解长度最小的子数组

摘要 本文介绍了使用滑动窗口算法解决LeetCode上"最小长度子数组和"问题的思路。通过维护一个可变窗口(双指针left和right),当窗口内元素和≥目标值时收缩左边界,否则扩展右边界,从而高效地找到满足条件的最短子数组。关键点在于利用单调性优化计算,通过sum-=nums[left]快速更新窗口和,避免重复求和。算法时间复杂度O(n),空间复杂度O(1),适用于大规模数据。文末提供了Java实现代码,并指出滑动窗口通过减少无效枚举来保证效率。

2301_77311065的博客 82

每日算法精讲 Day 5 | leetcode 209. 长度最小的子数组、leetcode 3. 无重复字符的最长子串、leetcode 1004. 最大连续1的个数 III

本文以三道 LeetCode 经典题目(209. 长度最小的子数组、3. 无重复字符的最长子串、1004. 最大连续1的个数 III)为载体,系统讲解了滑动窗口(双指针)算法的核心思想与应用技巧。文章从"正数数组的单调性"切入,逐步过渡到"哈希判重"与"状态标记转化约束",由浅入深地展示了滑动窗口在子数组/子串最值问题中的通用解题框架。每道题均包含完整的题目分析、逻辑推导、代码实现及复杂度分析,最终总结出滑动窗口的关键要点:识别单调性、定义合法性条件、保证指针单向移动。

lingran__的博客 159

代码随想录算法训练营第二天 | 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II、每日一题1615.最大网络秩

左侧小于 + 右侧小于 = 左侧大于 + 右侧大于 => 左侧小于 − 左侧大于 = 右侧大于 − 右侧小于 - 1。左侧小于 + 右侧小于 = 左侧大于 + 右侧大于 => 左侧小于 − 左侧大于 = 右侧大于 − 右侧小于。模拟,用count计数来控制循环,不用考虑n的奇偶性。2488. 统计中位数为 K 的子数组。创建新的数组保存结果,双指针。209. 长度最小的子数组。977. 有序数组的平方。59. 螺旋矩阵 II。当子数组长度为奇数时。当子数组长度为偶数时。

qq_43312230的博客 3280

❤️209❤️带新手一起刷力扣 (LeetCode)❤️代码有详细的注释❤️反思总结❤️209. 长度最小的子数组

本文章是❤️力扣 (LeetCode)❤️的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个————????订阅专栏???? ????坚持刷算法 ????每天进步一点点 ????冲冲冲冲冲冲冲冲冲冲 ????刷力扣 (LeetCode)刷力扣 (LeetCode) 巧解力扣题目????????代码????????反思???????? 题目???????? 代码???????? class Solution { public: int minSubArrayLen(int s,

C/C++/Linux/MySQL 128
上一篇: 每日算法 - 无重复字符的最长子串
下一篇: idea 中使用Easy Code插件 -- 生成实体、DAO映射等文件
Longtermevolution
博客等级 码龄9年 113粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值