首页 > 解决方案 > 找到具有最大乘积的相邻元素对(错误消息)

问题描述

我不断收到不正确的消息,请解释一下出了什么问题?

这是一个挑战问题:给定一个整数数组,找到具有最大乘积的相邻元素对并返回该乘积。例子

对于inputArray = [3, 6, -2, -5, 7, 3],输出应该是 adjacentElementsProduct(inputArray) = 21.

7 和 3 生产最大的产品。

这是我的代码答案:

function adjacentElementsProduct(inputArray) {
for(let i=0;i<inputArray.length;i++){
    let prod =Math.max(inputArray[i]*inputArray[i+1]);
   

}
 return prod;
}

标签: javascriptarraysfunctionloops

解决方案


1)你必须得到两个数字的最大值

sum = Math.max(sum, inputArray[i] * (inputArray[i + 1] ?? 1));

2)您还必须处理最后一种情况,然后您i + 1undefined乘以1。您可以使用空合并运算符

(inputArray[i + 1] ?? 1)

function adjacentElementsProduct(inputArray) {
  let sum = 0;
  for (let i = 0; i < inputArray.length; i++) {
    sum = Math.max(sum, inputArray[i] * (inputArray[i + 1] ?? 1));
  }
  return sum;
}

const inputArray = [3, 6, -2, -5, 7, 3];
console.log(adjacentElementsProduct(inputArray));


推荐阅读