您的位置:首页 > Web前端 > JavaScript

[leetcode]209. Minimum Size Subarray Sum -- JavaScript 代码

2016-08-29 11:11 417 查看
/**
* @param {number} s
* @param {number[]} nums
* @return {number}
*/
var minSubArrayLen = function(s, nums) {
var len = nums.length;
if(len === 0){
return 0;
}
var p1 = 0;
var p2 = 0;
var sum = nums[p1];
var minlen = Infinity;
var isfind = false;
while(p2<len){
if(sum < s){
p2++;
sum += nums[p2];
}else{
isfind = true;
if(p2-p1+1 < minlen){
minlen = p2-p1+1;
}
if(sum-nums[p1] >= s){
sum -= nums[p1];
p1++;
}else{
p2++;
sum += nums[p2];
}
}
}
if(isfind){
return minlen;
}else{
return 0;
}
};


这道题的思路是使用双指针,记录当前两指针指间数组元素和的大小sum,并根据sum值和s值的比对结果,来决定如何移动两个指针。

另外感觉这道题有一点点贪心算法的意思。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode javascript