在 JavaScript 中尋找最大的三元積陣列


我們需要編寫一個 JavaScript 函式,其中包含一個整數陣列作為唯一引數。

根據作為輸入傳入的陣列,函式應基於以下條件構造一個具有相同長度的新陣列。

輸出陣列的任何對應元素都應該是到目前為止遇到的三個最大數字的乘積。如果相應的索引小於 3(我們尚未遇到三個元素),則相應的值應為 -1。雖然我們可以使用非唯一值來計算乘積,但這些非唯一值應存在於不同的索引處。

例如 −

如果輸入陣列為 −

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

則輸出應為 −

const output = [-1, -1, 6, 24, 60, 120];

示例

以下是程式碼 −

const arr = [1, 2, 3, 4, 5, 6];
const maximumTripleProduct = (arr = []) => {
   const res = [];
   const max = [arr[0], arr[1], arr[2]];
   res[0] = res[1] = -1;
   res[2] = arr[0] * arr[1] * arr[2];
   for(let i = 3; i < arr.length; i++){
      max.push(arr[i]);
      max.sort((a, b) => b - a);
      max.pop();
      res[i] = max[0] * max[1] * max[2];
   };
   return res;
};
console.log(maximumTripleProduct(arr));

輸出

以下是控制檯輸出 −

[-1, -1, 6, 24, 60, 120]

更新於: 27-Jan-2021

132 次瀏覽

幫助你 職業生涯 起步

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.