[LeetCode]大于给定和最短子数组

2023-11-18

对于数组的操作,在算法实现中,可以考虑三种思想

  1. 阵地攻守 例题https://blog.csdn.net/fmuma/article/details/79858876
  2. 指针碰撞 例题https://blog.csdn.net/fmuma/article/details/79926339
  3. 滑动窗口 本题

题目

给定一个含有 n 个正整数的数组和一个正整数 s , 找到一个最小的连续子数组的长度,使得这个子数组的数字和 ≥ s 。如果不存在符合条件的子数组,返回 0。

举个例子,给定数组 [2,3,1,2,4,3] 和 s = 7,
子数组 [4,3]为符合问题要求的最小长度。

代码

package com.wy.LeetCode;

// 数组的滑动窗口
public class T209 {

    public static void main(String[] args) {
        int []nums = {2,3,1,2,4,3};
        System.out.println(T209.minSubArrayLen(7,nums));

    }


    public static int minSubArrayLen(int s, int[] nums) {
        int length = nums.length;
        if(length==0)
            return 0;
        //构建滑动窗口,从数组索引0开始
        int l = 0;
        int r = -1; //一开始,设置滑动窗口不存在
        int sum = 0;//滑动窗口元素的和
        int result = length+1; //先让滑动窗口的大小为数组长度+1,很明显是不可能为这个数值的

        while (l<length){
            if( r+1<length && sum<s){ //在对于有数组的操作需要考虑到索引下标
                r++;
                sum += nums[r];
            }else{
                sum -= nums[l];
                l++;
            }
            if(sum>=s){
                result = Math.min(result,r-l+1);
            }
        }
        if(result==length+1)
            return 0;
        return result;
    }


}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[LeetCode]大于给定和最短子数组 的相关文章

  • 点积,内积,哈达玛积的区别

    哈达玛积哈达玛积 Hadamard product 是矩阵的一类运算 若A aij 和B bij 是两个同阶矩阵 若cij aij bij 则称矩阵C cij 为A和B的哈达玛积 或称基本积 乘完之后还是矩阵 点积点积在数学中 又称数量积
  • Unity_场景之间的跳转

    跳转场景之前 需要在 File gt Build Settings gt Add Open Scenes 或者 直接把 场景 拖拽进来 跳转场景方法1 已过时 跳转场景方法 public void OnStartGame string Sc
  • PC端地图Hybird应用开发(百度地图API+C#+JavaScript)

    接了一个外包 让我做地图系统 采用C 嵌套JavaScript编程 为Hybird应用 框架内存是基于winform 调用了控件webbrowser webbrowser解释 渲染html文件 JavaScript脚本 地图采用百度地图AP

随机推荐

  • Nginx 502 Bad Gateway 错误的解决方法

    502 bad gateway 的解决方法 通用配置proxy buffer size 4k 设置代理服务器 nginx 保存用户头信息的缓冲区大小 proxy buffers 4 32k proxy buffers缓冲区 网页平均在32k
  • 动态自适应可变加权极限学习机(Dynamic Adaptive Variable Weighted Extreme Learning Machine, DAVW

    动态自适应可变加权极限学习机 Dynamic Adaptive Variable Weighted Extreme Learning Machine DAVW ELM 预测算法附Matlab代码 极限学习机 Extreme Learning
  • C++ 合并链表

    合并2个递增链表 使得合并后仍保持递增顺序 MergeList cpp 合并2个排序的链表 2个递增的排序链表 合并这2个使得新链表中的结点仍是按照递增顺序排列的 include
  • 端口安全、MAC地址漂移、MACsec、流量控制、DHCP snooping

    二 知识点 1 端口安全 实验拓扑1 实验拓扑2 2 mac地址漂移 操作拓扑 3 MACSEC 4 流量抑制和风暴控制 演示拓扑 5 DHCP snooping 实验拓扑 DHCP snooping
  • Cisco switch vulnerability

    Cisco switch SSH Protocol Version 1 Session Key Retrieval https community cisco com t5 security knowledge base guide to
  • JSP通用分页

    通用分页核心思路 将上一次查询请求再发一次 只不过页码变了 实现步骤 1 先查询全部数据 baseDao
  • box-flex实现三等分布局

    前言 我还是个前端的菜鸟 现在在实习 接触到一些移动web的开发任务 遇到了很多问题 记录一下顺便分享给大家 问题 要实现下图的三等分屏幕效果 此页面为手机web页面 要求自适应宽度 探索 期初是用的width 33 33 但是这样很容易出
  • 【MLOps】第 4 章 : 开发模型

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • C语言getchar()函数:从控制台读取字符并立即回显

    头文件 include
  • 数据结构选择题

    1 数据元素及其关系在计算机存储器内的表示 称为数据的 B A 逻辑结构 B 存储结构 C 线性结构 D 非线性结构 2 某带头结点的单链表的头指针为 head 判定该链表为非空的条件是 B A headNULL B head gt nex
  • eclipse安装tomcat插件

    现在我只想说 我x你ma tmd 老子费了一下午 才他妈知道是怎么回事儿 原来是需要往eclipse了安装一个tomcat插件 害得我迷迷糊糊的搞了一下午 下班了都才搞明白 1 先下载一个tomcat插件 地址 http www eclip
  • 快速换线流程图_生产线快速切换的七大技巧

    SMED Single Minute Exchange of Die 一分钟即时换模 通常叫快速换模 也叫快速换产 是一种快速和有效的作业切换方法 这一概念指出 所有的转变或者启动都能够并且应该少于10分钟 因此才有了单分钟这一说法 所以又
  • python关键知识点

    1 变量 在程序中存储值或对象的名称 2 数据类型 指变量的数据类型 例如 str int float list tuple dict set 等 3 操作符 表示运算符号 例如加号 和减号 4 循环 通过重复执行某个代码块来实现多次操作的
  • 学习React与Next.js过程中的疑惑

    学习React与Next js过程中的疑惑 1 为什么React中函数作为props的时候 会出现无限调用的情况 而把函数放在箭头函数中就可以解决呢 2 next js与node js有什么区别 3 什么是快速刷新 4 Hooks出现的原因
  • IVTC/Deinterlace的来龙去脉

    IVTC Deinterlace的来龙去脉 1 胶片电影 曝光率为24帧 秒的progressive video 连续完整帧图像序列 它由无数个感光晶体 35mm可达5000 5000 实现图像曝光 而人眼在35mm的区域内能分辨的最大极限
  • 三句话,我让R语言自动升级了

    R语言是为数学研究工作者设计的一种数学编程语言 主要用于统计分析 绘图 数据挖掘 跟所有计算机语言一样 R语言也面临升级的问题 本文讲述了最快捷的升级R语言办法 不用重新安装之前的安装包 首先 进入R交互模式 然后三条命令搞定 instal
  • 抖音小程序开发教学系列(5)- 抖音小程序数据交互

    第五章 抖音小程序数据交互 5 1 抖音小程序的网络请求 5 1 1 抖音小程序的网络请求方式和API介绍 5 1 2 抖音小程序的数据请求示例和错误处理方法 5 2 抖音小程序的数据缓存和本地存储 5 2 1 抖音小程序的数据缓存机制和使
  • 交流电机绕组的分相

    交流电机绕组的分相 考虑到目前大多数伺服电机厂商已经逐渐使用集中式绕组进行制造 本文将以集中式绕组12槽10极电机为例简要介绍交流电机绕组的分相方法 即60 相带槽电势星形图方法1 槽电势星形图 当电机被带动旋转时 对于集中式绕组而言 每一
  • 穿越火线河北一区服务器位置,【 C F 史上最全的各大区“兵服”地址!】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 电 信 区 四川二区 团队1 频道2 浙江二区 团队2 频道2 江西一区 团队1 频道2 高手1 频道10 广西一区 高手1 频道7 爆满 上海一区 爆破1 频道8 9 10 11 爆满 南方大
  • [LeetCode]大于给定和最短子数组

    对于数组的操作 在算法实现中 可以考虑三种思想 阵地攻守 例题https blog csdn net fmuma article details 79858876 指针碰撞 例题https blog csdn net fmuma artic