Computer >> Máy Tính >  >> Lập trình >> Javascript

Xác định xem có một cặp giá trị nào trong mảng mà giá trị trung bình của cặp đó bằng với giá trị trung bình mục tiêu trong JavaScript hay không


Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng các số nguyên được sắp xếp và giá trị trung bình mục tiêu làm đối số đầu tiên và thứ hai.

Hàm sẽ xác định xem có một cặp giá trị nào trong mảng mà giá trị trung bình của cặp đó bằng với giá trị trung bình mục tiêu hay không.

Có một giải pháp với độ phức tạp không gian bổ sung O (1) và độ phức tạp thời gian O (n). Vì một mảng được sắp xếp, nên có hai chỉ số:một chỉ số từ đầu đến cuối (giả sử y), một chỉ số khác từ cuối đến đầu một mảng (giả sử x).

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true