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

LeetCode.209 长度最小的子数组

时间:2023-01-10 15:36:05浏览次数:37  
标签:right target min int sum LeetCode.209 result 数组 长度

1.题目

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0


 2.代码实现

1.暴力求解

      int min=Integer.MAX_VALUE;
for(int i=0; i<nums.length; i++){
if(nums[i]>=target){
return 1;
}
int sum=nums[i];
for(int j=i+1; j<nums.length; j++){
sum=sum+nums[j];
if(sum>=target){
min = Math.min(min,j-i+1);
break;
}
}
}
return min==Integer.MAX_VALUE?0:min;

此方法在力扣上会超出时间限制

2.滑动窗口

          int left=0;
int sum=0;
int result = Integer.MAX_VALUE;
for(int right=0; right<nums.length; right++){
sum+=nums[right];
while(sum>=target){
result = Math.min(result,right-left+1);
sum-=nums[left];
left++;
}
}
return result==Integer.MAX_VALUE?0:result;

1.滑动窗口的思想:就是两个指针,left表示窗口的左端开始,right表示窗口的右端结束,一开始是right一直往右移动,直到窗口之间的数之和大于等于target就会停止,记录窗口的长度,然后就是left往右移动判断和是否还是大于等于target,直到小于target就会停止,然后再移动right,由此反复,每次都会更新长度,最后result记录的就是最小长度

2.result的初始值记录为Integer.MAX_VALUE

Integer.MAX_VALUE表示int数据类型的最大取值数:2 147 483 647
Integer.MIN_VALUE表示int数据类型的最小取值数:-2 147 483 648

3.最后的返回值也要判断,判断result是否赋值成功,不然的话就是整个数组之和都小于target,那么就会返回0














标签:right,target,min,int,sum,LeetCode.209,result,数组,长度
From: https://blog.51cto.com/u_15806469/6000382

相关文章

  • 数组中有某值就删除没有就加入
    数组中有某值就删除没有就加入代码livedemo点击预览 constarr=[1,2,3,4]constx=5//用indexOf()方法判断constindex=arr.indexOf(x);//index<0:......
  • 561. 数组拆分
    问题描述https://leetcode.cn/problems/array-partition/description/解题思路这个题目很有意思。其中的思想依然是贪心。我们要去想,在一个小的数对中,我们应该怎么样才......
  • PowerShell 读取 Goldengate 进程转为数组插入到sql server中
    在使用oracle Goldengate同步时,有时会忽略了ogg进程的启动。若安装Goldengatemonitor只监控着一两个同步又没必要,所以使用脚本来进行监控查看。为便于可视化,先将ogg......
  • 微信小程序this.setData修改对象、数组中的值
    在微信小程序的[前端开发]中,使用this.setData方法修改data中的值,其格式为:this.setData({'参数名1':值1,'参数名2':值2)}需要注意的是,如果是简单变量,这里的......
  • jQuery核心对象(伪数组,什么时候可以不写绑定文档加载完成的监听$(function(){},each中又
    伪数组相关文档主要是讲了给1.$()【函数】和$.xxx【方法】2.$xxx.yyy()【$xxx是一种常见的给jQuery对象的命名方式】【给对象用的方法】用的函数和方法。绝大部分都......
  • js提取元素中的指定成员组成数组
    js提取元素中的指定成员组成数组一、概念map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。二、语法array.map(fu......
  • golang数组
    目录目录数组特性语法数组内存结构数组声明数组赋值数组指针数组方法数组遍历数组类型扩展1.字符串数组2.结构体数组3.接口数组4.管道数组5.图像解码器数......
  • Vue判断数组元素是否为undefined
    问题:现在有这样一个数组,没有第一个元素,如何判断该位置为空控制台输出为undefinde首先尝试array[0]===undefined,可以需要修改为array[0]==="undefinde"这样不行......
  • 利用折半查找法去找一个有序数组中你要找的数并输出
    从一个数组中寻找你要找的数并输出角标其中一种解决方法便是遍历数组找到你要的那个数。#include<stdio.h>intmain(){inta[]={1,2,3,4,5,6,7,8,9},flag=0;......
  • LeetCode.977 有序数组的平方
    1.题目给你一个按 非递减顺序 排序的整数数组 ​​​​nums​​​​,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。2.代码classSolution{public......