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

หาผลคูณ диагоนัลหลักของเมทริกซ์ - JavaScript

คำนวณผลคูณของเอลีเมนต์บน Principal Diagonal (แนวทแยงมุมซ้ายบนไปขวาล่าง) ของ Square Matrix

ตัวอย่าง

Matrix:
[1, 3, 4, 2]
[4, 5, 3, 5]
[5, 2, 6, 4]
[8, 2, 9, 3]

Diagonal: 1, 5, 6, 3
Product: 1 × 5 × 6 × 3 = 90

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

const arr = [
  [1, 3, 4, 2],
  [4, 5, 3, 5],
  [5, 2, 6, 4],
  [8, 2, 9, 3]
];

const diagonalProduct = arr => {
  let product = 1;
  for (let i = 0; i < arr.length; i++) {
    product *= arr[i][i];
  }
  return product;
};

console.log(diagonalProduct(arr));

ผลลัพธ์

90

โค้ดต้นฉบับ vs ปรับปรุง

// ต้นฉบับ: นested loop เช็ค i === j (ช้า O(n²))
// ปรับปรุง: Single loop ดึง arr[i][i] โดยตรง (เร็ว O(n))

เพราะ Diagonal อยู่ที่ index [i][i] เสมอ ไม่ต้องลูป j