剑指Offer——和为S的连续正数序列(JS实现)
发布日期:2021-06-30 15:20:27 浏览次数:2 分类:技术文章

本文共 870 字,大约阅读时间需要 2 分钟。

题目描述

解题思路

  • 使用left和right两个变量来代替滑动窗口的左边界和右边界。
  • 核心while循环的条件是:只要左边界 小于 目标值的一半就要进入循环,只要不小于循环结束,说明此时已经找到完了。
  • 定义temp变量,用来存放滑动窗口中的所有元素的和。
  • 当temp小于target的值的时候,右边界向右扩一个。
  • 当temp大于target的时候,左边向右一个

实现代码

var findContinuousSequence = function(target) {
let left = 1; let right = 1; let arr = []; let temp = 0; // 下面的这个result数组是用来返回的 let result = []; // 核心判断条件是当 left >= target/2 的时候 left + tight >= target while (left < (target/2)) {
while (temp < target) {
temp = temp + right; arr.push(right); right += 1; } while (temp > target) {
temp = temp - left; arr.shift(); left += 1; } if (target === temp) {
temp = temp - left; left++; result.push([...arr]); arr.shift(); } } return result;};

转载地址:https://jiapy.blog.csdn.net/article/details/115278463 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:剑指Offer——二叉树的最近公共祖先(JS实现)
下一篇:数据结构基础——栈

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月14日 19时47分30秒