Tìm cặp 2 phần tử liền kề trong mảng có tổng nhỏ nhất. Trả về false nếu mảng < 2 phần tử.
Ví dụ: [41,44,-12,13,-23,1,5,-4,2,2] → cặp [-23,1] tổng -22 nhỏ nhất.
Mã thực hiện
const arr = [41,44,-12,13,-23,1,5,-4,2,2];
const leastSum = arr => {
if (arr.length <= 2) return false;
const creds = arr.reduce((acc, val, i) => {
let {smallest, startIndex} = acc;
const next = arr[i+1];
if (!next) return acc;
const sum = val + next;
if (sum < smallest) { startIndex = i; smallest = sum; }
return {startIndex, smallest};
}, {smallest: Infinity, startIndex: -1});
return [arr[creds.startIndex], arr[creds.startIndex+1]];
};
console.log(leastSum(arr));
Kết quả
[-23, 1]