对3-7代码的优化疑问
来源:3-7 滑动窗口 Minimum Size Subarray Sum
仙女座舜
2019-03-01
209号问题是寻找长度最小的连续子数组使得和>=s并返回长度,可老师你代码里的是 while (l < nums.length) 代码就要一直执行下去,但是如果这个数组本身就含有s,换句话说res==1这个时候就可以直接return 1了而不需要一直执行while里面的代码是不是?。所以我加了一个判断
if(res == 1){
return res;
}
class Solution {
public int minSubArrayLen(int s, int[] nums) {
int l = 0;
int r = - 1;
int res = nums.length + 1;
int sum = 0;
while (l < nums.length) {
if (r + 1 < nums.length && sum < s) {
sum += nums[++r];
} else {
sum -= nums[l++];
}
if (sum >= s) {
res = Math.min(res, r - l + 1);
}
if(res == 1){//在这里添加判断
return res;
}
}
if (res == nums.length + 1) {
return 0;
}
return res;
}
}
写回答
2回答
-
赞!感谢分享:)
继续加油!:)
162019-04-17 -
agjsytt
2020-01-08
有道理,吊
00
相似问题