คำนวณผลคูณของเอลีเมนต์บน 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