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

Tích lớn nhất của hai số trong mảng số nguyên JavaScript

Viết hàm tìm tích lớn nhất của hai phần tử bất kỳ trong mảng, thời gian tuyến tính, không gian hằng số.

Ví dụ: [3,9,2,1,0] → 27 (3×9). Cần xét cả cặp số âm lớn nhất.

Ví dụ

const arr = [3, 9, 2, 1, 0];
const maxPairProduct = (arr = []) => {
  let c = Infinity, d = c;
  let a = -Infinity - 1, b = a;
  for (const n of arr) {
    if (n >= a) { b = a; a = n; }
    else if (n >= b) b = n;
    if (n <= d) { c = d; d = n; }
    else if (n <= c) c = n;
  }
  return Math.max(a * b, c * d);
};
console.log(maxPairProduct(arr));

Kết quả

27