首页 > 其他分享 >力扣209.长度最小的子数组

力扣209.长度最小的子数组

时间:2024-09-03 22:24:14浏览次数:13  
标签:min 209 sum nums 力扣 int hi 数组 指针

class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        // 初始化滑动窗口的左右指针和当前窗口内元素的和
        int lo = 0, hi = 0, sum = 0, min = Integer.MAX_VALUE;

        // 遍历数组,移动右指针扩大窗口
        while (hi < nums.length) {
            sum += nums[hi]; // 将右指针指向的元素加入窗口内元素之和
            hi++; // 右指针向右移动

            // 当窗口内元素之和大于等于目标值s时,尝试缩小窗口以找到最小长度
            while (sum >= s) {
                min = Math.min(min, hi - lo); // 更新最小长度
                sum -= nums[lo++]; // 移除左指针指向的元素并左指针向右移动
            }
        }

        // 如果最小长度仍为初始值,说明没有找到满足条件的子数组,返回0;否则返回最小长度
        return min == Integer.MAX_VALUE ? 0 : min;
    }
}

标签:min,209,sum,nums,力扣,int,hi,数组,指针
From: https://blog.csdn.net/2401_83010439/article/details/141873483

相关文章

  • 数组
    数值型数组特征值统计:简单示例:求总和与均值:给定数组arr={4,5,6,1,9},求其总和、平均值并输出。求解代码:publicclassTest{publicstaticvoidmain(String[]args){int[]arr={4,5,6,1,9};//求总和、均值intsum=0;//因为0加上任何......
  • 力扣-968监控二叉树(Java贪心详细题解)
    题目链接:968.监控二叉树-力扣(LeetCode)前情提要:本题是一道名副其实的hard题目,他考察二叉树和贪心的综合运用能力。所以我们不仅要会贪心还要会二叉树的一些知识,如果没有写二叉树类型的题目,建议大家该题可以放放,去刷其他的题目。因为本人最近都来刷贪心类的题目所以该......
  • P01-Java何谓数组
    P01-Java何谓数组一、数组声明创建1.1数组声明的语法与c++有所不同在Java中,数组声明语法首选语法://数据类型[]数组名称;int[]arr;次选,与c++类似//数据类型数组名称[];intarr[];1.2数组创建语法与c++指针有所相似,在java中用new创建数组//数组名称=......
  • 第三章 数组(5)
    3.5数组排序算法        对数据进行升序或降序排列是日常工作中经常遇到的需求,这就要求开发者必须掌握基本的数据排序算法,本节将介绍冒泡排序、选择排序和Arrays类提供的排序方法。    3.5.1冒泡排序        冒泡排序是最常用的数组排序算法之一,......
  • 第三章 数组 课后训练(3)
            训练5鸡蛋装箱    某公司准备好十个包装箱,每箱装60枚鸡蛋。由于机器故障,每箱少装了2枚鸡蛋,使用数组的相关知识体现该过程。publicstaticvoidmain(String[]args){intarr[][]=newint[10][58];//一共十个箱子,每个箱子应装60个,现在少......
  • 请问结构体数组是如何进行定义的呢?定义方法分为两种,第一种是声明和赋值分开进行的。第
    问题描述:根据下列代码回答下列问题。//Createdby黑马程序员.#include"iostream"usingnamespacestd;intmain(){structStudent{stringname;intage;stringgender;};structStudentarr[3];//结构体......
  • 面试最常见算法3—数组
    1.二维数组螺旋打印给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。示例1:输入:array=[[1,2,3],[8,9,4],[7,6,5]]输出:[1,2,3,4,5,6,7,......
  • C语言指针的进阶理解——指针数组
    //整型数组 //顾名思义是存放整型类型的元素的数组 intarr1[]={1,2,3,4,5};//arr内元素的类型是int //字符数组 //顾名思义是存放字符类型元素的数组 chararr2[]={'a','b','c'};//arr内元素的类型是char那么指针数组你是不是也能推算出来它大概的模样了,差不......
  • 算法与数据结构——二叉树数组表示
    二叉树数组表示在链表表示下,二叉树的存储单元为节点TreeNode,节点之间通过指针相连接。同前面的队列或栈,二叉树同样可以使用数组来表示。表示完美二叉树给定一棵完美二叉树,我们将所有节点按照层序遍历的顺序存储在一个数组中,则每个节点都对应唯一的数组索引。按照层序遍历的特......
  • Go 必知必会:探索 Go 语言中的数组和切片深入理解顺序集合
    文末有面经共享群在Go语言的丰富数据类型中,数组和切片是处理有序数据集合的强大工具,它们允许开发者以连续的内存块来存储和管理相同类型的多个元素。无论是在处理大量数据时的性能优化,还是在实现算法时对数据结构的需求,数组和切片都扮演着至关重要的角色。Go语言中的数组在......