长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr]
,并返回其长度。如果不存在符合条件的子数组,返回 0 。
function getMinSubArray(arr, target) { let minLen = 0; let slow = 0; let fast = 0; let currentSum = 0; while (fast < arr.length) { currentSum += arr[fast]; while (currentSum >= target) { if(minLen === 0 || fast - slow + 1 < minLen) { minLen = fast - slow + 1 } currentSum -= arr[slow]; slow++; } fast++; } return minLen; } console.log(getMinSubArray([2, 3, 1, 2, 4, 3], 7)); console.log(getMinSubArray([1,4,4], 1)); console.log(getMinSubArray([1,1,1,1,1,1,1,1], 11));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 最长递增子序列
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
更多
发布评论