当前位置 : 主页 > 编程语言 > java >

LeetCode. 209 :Minimum Size Subarray Sum

来源:互联网 收集:自由互联 发布时间:2022-10-26
题目描述: 给定一个含有​​n​​个正整数的数组和一个正整数​​target​​。 找出该数组中满足其和​​≥ target​​的长度最小的连续子数组​​[nums l , nums l+1 , ..., nums r-1 , nums

题目描述:

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

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

分析:

方法一:暴力解决法(双层循环)

方法二:滑动窗口法

代码实现:

class Solution {
public int minSubArrayLen(int target, int[] nums) {
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); //调用Math库中的比较大小的函数
sum-=nums[left++]; //左指针移动
}
}
return result==Integer.MAX_VALUE?0:result; //通过三目运算符来进行比较
}
}
上一篇:IIS控制大全
下一篇:没有了
网友评论