Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cặp phần tử liền kề có tổng nhỏ nhất - JavaScript

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]