首页 > 其他分享 >《代码随想录》-3.长度最小的子数组

《代码随想录》-3.长度最小的子数组

时间:2024-05-16 18:19:49浏览次数:25  
标签:窗口 复杂度 随想录 最小 数组 长度

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

滑动窗口
只用一个for循环,其索引指向窗口终点位置
窗口是满足其和>=s的最小长度的连续数组
当窗口大于等于s,起始位置就要前进

核心代码

while(sum>=s){
  subLength=j-i+1;
  result=result<subLength?result:subLength;
  sum=sum-num[i++];//不断变更i
}

时间复杂度:O(n)
空间复杂度:O(1)

标签:窗口,复杂度,随想录,最小,数组,长度
From: https://www.cnblogs.com/baolanse/p/18196450

相关文章

  • 柔性数组
    什么是柔性数组柔性数组也称为变长数组,是一种动态数组的实现方式。与普通数组不同的是,柔性数组在定义时不需要明确指定数组大小,在程序运行时可以动态地分配和扩展数组大小,在程序运行时可以动态地分配和扩展数组大小柔性数组是通过C99标准中提供的结构体成员为未知长度的数......
  • 代码随想录算法训练营第八天 | 344.反转字符串 替换数字
    344.反转字符串题目链接文章讲解视频讲解时间复杂度o(n)空间复杂度o(1)思路:双指针解决,和翻转数组一样classSolution{public:voidreverseString(vector<char>&s){intleft=0,right=s.size()-1;while(left<right){......
  • 二维数组排序
    为了更灵活地控制排序字段和排序顺序,可以修改DataSorter类,使其能够通过参数指定排序字段和排序顺序。以下是实现方法:DataSorter类<?phpclassDataSorter{/***按指定字段和顺序排序二维数组**@paramarray$data要排序的二维数组*@param......
  • 代码随想录算法训练营第第八天 | 344.反转字符串 、541. 反转字符串II、卡码网:54.替
    344.反转字符串建议:本题是字符串基础题目,就是考察reverse函数的实现,同时也明确一下平时刷题什么时候用库函数,什么时候不用库函数题目链接/文章讲解/视频讲解:https://programmercarl.com/0344.反转字符串.html/***@param{character[]}s*@return{void}Donotret......
  • 108. 将有序数组转换为二叉搜索树(leetcode)
    https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/要点是分割左右区间,并且分割时需要注意left和right相加可能会超过int,但是本题不需要classSolution{publicTreeNodesortedArrayToBST(int[]nums){//有返回值写法......
  • shell函数和数组
    函数定义函数##第一种:简单常用函数名(){脚本(命令集合)}##第二种:function函数名{脚本内容(命令集合)}##第三种function函数名(){脚本(命令集合)}函数使用#!/bin/bashnum(){##num是定义的函数名称a=66echo${a}}num##这里的num是调用上面的num函数......
  • 数组和List互转
    数组转List数组转List,使用JDK中java.util.Arrays工具类的asList方法。importjava.util.Arrays;importjava.util.List;publicclassMain{publicstaticvoidmain(String[]args){String[]strs={"aaa","bbb","ccc"};List......
  • jquery使用$.grep删除数组中的某个值
    vararr=[1,2,3,4,5];varvalueToRemove=3;//方法1:使用$.grep()方法arr=$.grep(arr,function(value){returnvalue!=valueToRemove;});console.log(arr);//[1,2,4,5]//方法2:使用Array.prototype.filter()方法(纯JavaScript)arr=arr.fi......
  • 创建二维动态数组
    1//#include<bits/stdc++.h>2#include<iostream>3#include<vector>4usingnamespacestd;5intmain(){6intn;7cin>>n;8//writeyourcodehere......910////1.使用一维数组模拟11//int*num=......
  • Vue数组变化的侦测的学习
    数组的监听有两种方法变更方法和替换数组####两者的区别就是变更方法会引起ui的自动更新即直接会显示在页面上,但是替换数组不会,变更方法push()pop()shift()unshift()splice()sort()reverse()替换数组concat()filter()slice()如何实现替换数组相当于是变更方法......