长度最小的子数组

发布于 2023-05-04 19:58:38 字数 712 浏览 43 评论 0

给定一个含有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
23 人气
更多

推荐作者

qq_eQNo9e

文章 0 评论 0

内心旳酸楚

文章 0 评论 0

mb_BlPo2I8v

文章 0 评论 0

alipaysp_ZRaVhH1Dn

文章 0 评论 0

alipaysp_VP2a8Q4rgx

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文