📌  相关文章
📜  数组中的最大元素,以使其上一个和下一个元素乘积最大(1)

📅  最后修改于: 2023-12-03 15:26:11.581000             🧑  作者: Mango

数组中的最大元素,使其上一个和下一个元素乘积最大

在给定数组中找到一个元素,使其上一个和下一个元素乘积最大,并返回新的元素。

解题思路
  1. 遍历数组,查找最大值,记录其下标
  2. 如果最大值在第一个位置或最后一个位置,返回该元素
  3. 否则,比较最大值的前后元素,返回较大值的元素
伪代码
function findMaxProductElement(array) {
  let max = array[0],
      maxIndex = 0,
      length = array.length;

  // 查找最大值
  for (let i = 1; i < length; i++) {
    if (array[i] > max) {
      max = array[i];
      maxIndex = i;
    }
  }

  // 处理边界情况
  if (maxIndex === 0 || maxIndex === length - 1) {
    return max;
  } else {
    let prev = array[maxIndex - 1],
        next = array[maxIndex + 1];
    return prev > next ? prev : next;
  }
}
时间复杂度

遍历数组需要O(n)的时间,因此时间复杂度为O(n)。

空间复杂度

仅使用常数级别的内存空间,空间复杂度为O(1)。