📅  最后修改于: 2023-12-03 15:26:11.581000             🧑  作者: Mango
在给定数组中找到一个元素,使其上一个和下一个元素乘积最大,并返回新的元素。
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)。