Viết hàm JavaScript nhận vào mảng số nguyên đã sắp xếp và giá trị trung bình mục tiêu (target average). Hàm xác định xem có cặp giá trị nào trong mảng có trung bình bằng target hay không.
Giải pháp O(1) không gian và O(n) thời gian: dùng hai con trỏ, một từ đầu (y), một từ cuối (x) vì mảng đã sắp xếp.
Ví dụ
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));Kết quả
Kết quả in ra console:
true