【算法】获取一个数组里第二大的数字
给定一个数组,获取数组里第二大的数字。
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];
};
赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
文章评论
暂无任何评论,快去发表吧~