长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的
子数组
[numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
- 输入:target = 7, nums = [2,3,1,2,4,3]
- 输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| var minSubArrayLen = function(target, nums) {
let start = 0; let end = 0; let sum = 0; let arrLength = 0; let res = nums.length let sign = 0 for(end;end<nums.length;end++){ sum += nums[end]; while(sum >= target){ sign = 1; arrLength = end - start + 1; res = Math.min(arrLength,res); sum -= nums[start]; start++; } } return sign == 1? res:0; };
|