使用 JavaScript 判斷陣列中是否存在一對值的平均值等於目標平均值


我們需要編寫一個 JavaScript 函式,該函式以排序整數陣列和目標平均值作為第一個和第二個引數。

該函式應確定陣列中是否存在一對值的平均值等於目標平均值。

有一種解決方案具有 O(1) 的額外空間複雜度和 O(n) 的時間複雜度。由於陣列已排序,因此使用兩個索引是有意義的:一個從頭到尾(例如 y),另一個從陣列的尾到頭(例如 x)。

示例

程式碼如下:

const arr = [1, 2, 4, 6, 7, 9, 11];
const averagePair = (arr = [], target = 1) => {
   let x = arr.length − 1;
   for (let y = 0; y < x; y++) {
      while (y < x && arr[x] + arr[y] > 2*target) {
         x−−;
      };
      if (x !== y && arr[x] + arr[y] === 2 * target) {
         return true;
      };
   };
   return false;
};
console.log(averagePair(arr, 6.5));

輸出

控制檯輸出如下:

true

更新時間: 2020-11-21

瀏覽量 117 次

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.