如何找到一个数组中的第二大的数?

每天一道算法题:如何找到一个数组中的第二大的数?

javascript

function findSecondLargest(nums) {
    if (nums.length < 2) {
        return null;  // 如果数组中元素少于2个,则没有第二大的数
    }
 
    // 初始化最大数和第二大的数
    let firstLargest = -Infinity;
    let secondLargest = -Infinity;
 
    // 遍历数组
    for (let num of nums) {
        if (num > firstLargest) {
            // 如果当前数大于最大的数
            secondLargest = firstLargest;
            firstLargest = num;
        } else if (firstLargest > num && num > secondLargest) {
            // 如果当前数小于最大的数但大于第二大的数
            secondLargest = num;
        }
    }
 
    // 返回第二大的数
    return secondLargest !== -Infinity ? secondLargest : null;
}
 
// 测试代码
let nums = [3, 5, 1, 8, 7, 6];
let secondLargest = findSecondLargest(nums);
console.log(`数组中的第二大的数是: ${secondLargest}`);

这段代码定义了一个函数 findSecondLargest,它接受一个数组 nums 作为输入,并返回数组中的第二大的数。如果数组中元素少于2个,则返回 null。在函数中,使用两个变量 firstLargest 和 secondLargest 来跟踪最大的数和第二大的数。通过遍历数组并更新这两个变量,最后返回第二大的数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容