Open shfshanyue opened 3 years ago
const maxTwo = (arr) => {
const max = Math.max(...arr)
const secondMax = Math.max(...arr.filter(a => a !== max))
return [max, secondMax]
}
若存在相同最大值,此法凉凉~
const arr = [1, 2, 3, 4, 20, 20]
const arr2 = [0, -1]
const arr3 = []
function findLargestTwoNumbers(arr){
if(!arr.length) return
let max = -Infinity, second = -Infinity
for(let i of arr){
console.log(i)
if(i > max){
second = max
max = i
}else if(i > second){
second = i
}
}
return [max, second]
}
console.log(findLargestTwoNumbers(arr))
console.log(findLargestTwoNumbers(arr2))
console.log(findLargestTwoNumbers(arr3))
求最大的一个值:
求最大的两个值:
如果求 TopN,可使用大顶堆、小顶堆实现,见另一个问题