LeetCode 209 长度最小的子数组
程序员文章站
2022-07-14 18:16:16
...
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的子数组。如果不存在符合条件的子数组,返回 0。
示例:
输入:[2,3,1,2,4,3],
s = 7
输出: 2 解释: 子数组[4,3]
是该条件下的长度最小的子数组。
进阶:
如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。
class Solution {
//时间复杂度 0(n)
//空间复杂度 O(1)
public int minSubArrayLen(int s, int[] nums) {
int n = nums.length;
int left =0,min = 0,sum = 0;
for(int i=0;i<n;i++){
sum+=nums[i];
while(sum>=s){
if(min==0){
min = i-left+1;
}else{
min = Math.min(i-left+1,min);
}
sum -=nums[left];
left++;
}
}
return min;
}
}
上一篇: 获得菜单项目名称
推荐阅读
-
【LeeCode 中等 数组 python3】209. 长度最小的子数组
-
[leetcode](4.21)4. 有效子数组的数目
-
【LeetCode-153】153.寻找旋转排序数组中的最小值
-
程序员代码面试指南 python实现(第一章 栈和队列 :最大值减去最小值小于或等于num的子数组数量)
-
leetcode 第907题 子数组的最小值之和 python解法
-
LeetCode-907.子数组的最小值之和
-
Java实现给定一个无序的整数数组,找到其中最长上升子序列的长度。
-
LeetCode 907 - 子数组的最小值之和
-
leetcode 209 长度最小的子数组
-
LeetCode:长度最小的子数组【209】