以 JavaScript 構築產品陣列


我們需要編寫一個 JavaScript 函式,它接受一個數字陣列。該函式應根據原始陣列構建一個新陣列。新陣列的每個對應元素都應該是原始陣列(包括該元素)中所有元素的乘積。

例如 −

如果輸入陣列為 −

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]

更新於: 2020年12月10日

556 次瀏覽

開啟你的 職業

完成課程獲取認證

開始吧
廣告
© . All rights reserved.