欢迎光临散文网 会员登陆 & 注册

LeetCode-209-长度最小的子数组

2022-04-21 22:01 作者:雄狮虎豹  | 我要投稿

长度最小的子数组

题目描述:给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [nums l, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例说明请见LeetCode官网。

来源:力扣(LeetCode)   

链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/   

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法一:滑动窗口

首先,判断特殊情况,如果数组为空,直接返回0。

否则,使用滑动窗口法来判断是否存在最小的连续子数组,具体处理逻辑如下:

  • 首先,声明滑动窗口的左右边界,并用minLen记录最小的连续子数组的长度;

  • 遍历数组,直到右边界遍历到原数组的最后一个数字位置;

  • 计算当前范围的连续子数组的和,判断当前的和是否比target小,如果不小于,则将窗口的左边界右移,并且判断当前的连续长度是否是最小的;如果小于,则将窗口的右边界右移。

最后,判断minLen是否已找到,如果不存在则返回0;否则,返回minLen。

【每日寄语】 人生像攀登一座山,而找山寻路,却是一种学习的过程,应当在这过程中,学习笃定、冷静,学习如何从慌乱中找到生机。



LeetCode-209-长度最小的子数组的评论 (共 条)

分享到微博请遵守国家法律