力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
给定一个含有
n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于
target的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr],并返回其长度。如果不存在符合条件的子数组,返回0。
题解:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
双指针
代码如下:
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int n = nums.length;
if(n == 0){
return 0;
}
int left = 0, right = 0;
int res = Integer.MAX_VALUE;
int sum = 0;
while(right < n){
sum += nums[right];
while(sum >= target){
res = Math.min(res, right - left + 1);
sum -= nums[left];
left++;
}
right++;
}
return res == Integer.MAX_VALUE ? 0 : res;
}
}
本文介绍了解决LeetCode上的一个问题,如何找到一个数组中长度最小且和大于等于给定目标值的连续子数组。使用双指针方法实现,代码展示了计算过程和优化结果。

317

被折叠的 条评论
为什么被折叠?



