等保二级网站建设方案,画册排版,佛山 详情公布,信用中国 网站谁建设的给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] #xff0c;并返回其长度。如果不存在符合条件的子数组#xff0c;返回 0 。
示例 1#xff1a; 输入#x…给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] 并返回其长度。如果不存在符合条件的子数组返回 0 。
示例 1 输入target 7, nums [2,3,1,2,4,3] 输出2 解释子数组 [4,3] 是该条件下的长度最小的子数组。
示例 2 输入target 4, nums [1,4,4] 输出1
示例 3 输入target 11, nums [1,1,1,1,1,1,1,1] 输出0
解法
/*** param {number} target* param {number[]} nums* return {number}* 核心思路数组扩张大于等于target后数组缩减*/
var minSubArrayLen function(target, nums) {let minLen Infinity, addIndex 0,minusIndex 0,sum0while(addIndexnums.length){sumnums[addIndex]while(targetsum){minLen Math.min(minLen,addIndex-minusIndex1)sum - nums[minusIndex]minusIndex}addIndex}return minLen Infinity? 0: minLen
};