远浅
理解他人,内省自己。

【算法】获取一个数组里第二大的数字

远浅发表于: 2021-03-15 15:13分类: 技术

给定一个数组,获取数组里第二大的数字。

const Smax = arr => {
    // 初始数据 并且排序
    const list = [arr[0], arr[1]];
    if (list[0] < list[1]) {
        const x = list[0];
        list[0] = list[1];
        list[1] = x;
    }

    // 遍历剩余数据
    for (let index = 2; index < arr.length; index++) {
        const item = arr[index];
        // 如果比最大数据大
        if (item >= list[0]) {
            //  移除栈尾部数据
            list.pop();
            //  插入最大数
            list.unshift(item);
        } else if (item > list[1] || list[0] == list[1]) {
            // 大于最尾部的数据 或者两个暂存数值相等 则替换掉
            list[1] = item;
        }
    }
    return list[1];
};

赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
评论列表
评论努力加载中