对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回答

liuyubobobo

2019-03-01

赞!感谢分享:)


继续加油!:)

1
6
liuyubobobo
回复
仙女座舜
有计划系统讲智能优化算法,但也肯定不是在最近的1-2年:)
2019-04-17
共6条回复

agjsytt

2020-01-08

有道理,吊

0
0

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程