双越老师好,我测试这个数组的时候出现了问题

来源:2-20 找出一个数组中和为 n 的两个数-双指针的代码演示

菜卷_

2022-04-17

老师好,我测试[1, 5, 3, 9, 10, 12]这个数组的时候,查找和为12的两个数,预期findTwoNumbers1(arr,12)会返回[3,9], 但结果返回的是空数组。
麻烦老师帮我看看哪里出现问题了~

const findTwoNumbers1 = (arr: number[], n: number): number[] => {
  const res: number[] = [];
  if (arr.length === 0) return res;

  let i = 0;
  let j = arr.length - 1;

  while (i < j) {
    let sum = arr[i] + arr[j];
    console.log("sum: ", sum);

    if (sum > n) {
      j--;
    } else if (sum < n) {
      i++;
    } else {
      res.push(arr[i]);
      res.push(arr[j]);

      break;
    }
  }

  return res;
};

const arr = [1, 5, 3, 9, 10, 12];
const res = findTwoNumbers1(arr, 12);
console.log(res);
写回答

1回答

双越

2022-04-18

你的数组不是递增的

0
1
菜卷_
哦哦哦,没注意~~谢谢双越老师~
2022-04-18
共1条回复

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1515 学习 · 642 问题

查看课程