Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ผลคูณสูงสุดของสองตัวเลขในรายการจำนวนเต็มด้วย JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มเป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องหาผลคูณสูงสุดที่ได้จากการคูณสองสมาชิกใดๆ ในอาร์เรย์ โดยต้องทำในเวลาเชิงเส้นและพื้นที่คงที่

ตัวอย่าง

ถ้าอาร์เรย์นำเข้าคือ:

const arr = [3, 9, 2, 1, 0];

ผลลัพธ์ควรเป็น:

const output = 27;

เพราะ 27 เป็นผลคูณมากที่สุด ได้จาก 3 × 9

ตัวอย่างโค้ด

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

ผลลัพธ์

27