按排序顺序查找 JavaScript 中的平方数


问题

我们需要编写一个 JavaScript 函数,该函数接受一个以递增顺序排序的整数数组 arr。

我们函数应该返回一个每个数字的平方构成的数组,同样按递增顺序排序。

例如,如果输入函数的是

const arr = [-2, -1, 1, 3, 6, 8];

那么输出应该是

const output = [1, 1, 4, 9, 36, 64];

示例

代码如下:

 实时演示

const arr = [-2, -1, 1, 3, 6, 8];
const findSquares = (arr = []) => {
   const res = []
   let left = 0
   let right = arr.length - 1
   while (left <= right) {
      const leftSquare = arr[left] * arr[left]
      const rightSquare = arr[right] * arr[right]
      if (leftSquare < rightSquare) {
         res.push(rightSquare)
         right -= 1
      } else {
         res.push(leftSquare)
         left += 1
      }
   }
   return res.reverse();
};
console.log(findSquares(arr));

输出

控制台中的输出如下所示

[ 1, 1, 4, 9, 36, 64 ]

更新日期:2021 年 4 月 9 日

181 次浏览

事业起飞

通过完成课程获得认证

开始学习
广告