เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของ Numbers ฟังก์ชันควรสร้างอาร์เรย์ใหม่ตามอาร์เรย์เดิม แต่ละองค์ประกอบที่สอดคล้องกันของอาร์เรย์ใหม่ควรเป็นผลคูณขององค์ประกอบทั้งหมดของอาร์เรย์ดั้งเดิมรวมถึงองค์ประกอบนั้นด้วย
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr = [1, 2, 3, 4, 5];
จากนั้นอาร์เรย์เอาต์พุตควรเป็น −
const output = [120, 60, 40, 30, 24];
เราต้องบรรลุสิ่งนี้ในเวลาเชิงเส้นและปริภูมิคงที่ (แน่นอนว่าไม่รวมพื้นที่ที่ใช้ในการสร้างอาร์เรย์ใหม่)
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [1, 2, 3, 4, 5]; const exclusiveProduct = (arr = []) => { // O(n) time complexity const product = arr.reduce((acc, val) => acc * val); const res = []; // O(n) time complexity for(let i = 0; i < arr.length; i++){ const el = arr[i]; res[i] = product / el; }; return res; }; console.log(exclusiveProduct(arr));
ผลลัพธ์
ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -
[120, 60, 40, 30, 24]