在 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 次浏览

帮助你 职业生涯 起步

通过完成课程获得认证

立即开始
广告