📜  查找数组中的第二大元素(1)

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

查找数组中的第二大元素

在开发过程中,有时候需要查找数组中的第二大元素。这个任务似乎很简单,实质上也并不复杂。下面将介绍如何实现这个功能。

解题思路
  1. 定义两个变量,一个用来存储最大值,一个用来存储次大值。
  2. 遍历数组,对于每个元素,判断是否大于最大值,如果大于,则将最大值赋值为该元素,将次大值的值改为原来最大值的值。
  3. 如果该元素小于最大值,且大于次大值,则将次大值赋值为该元素。
  4. 最后返回次大值作为结果。

下面是JavaScript的实现代码:

function findSecondMax(arr) {
  let max = -Infinity;
  let secondMax = -Infinity;
  for (let i = 0; i < arr.length; i++) {
    const num = arr[i];
    if (num > max) {
      secondMax = max;
      max = num;
    } else if (num > secondMax) {
      secondMax = num;
    }
  }
  return secondMax;
}
测试

使用下面的测试用例检验代码的正确性:

const arr = [1, 5, 2, 9, 20, 14, 3];
const secondMax = findSecondMax(arr);
console.log(secondMax); // 输出14
总结

以上就是查找数组中的第二大元素的解题思路和JavaScript的实现代码。该方法时间复杂度为O(n),空间复杂度为O(1)。