在 JavaScript 中确定数组中是否有一对值,其平均值等于目标平均值

javascriptweb developmentfront end technologyobject oriented programming

我们需要编写一个 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

相关文章