这个效率应该也还可以。

来源:5-8 缺失的第一个正数(1)

weixin_慕仔4426869

2019-07-13

export default (arr) => {
let max = Math.max.apply(Math, arr)
let min = Math.min.apply(Math, arr)
if (min >= 2) {
return 1
}
if ((min === 0 || min === 1) && ((max - min) === arr.length - 1)) {
return max + 1
}
let nextOne = null
let res
for (let item of arr) {
if (nextOne && nextOne > 0 && nextOne !== item) {
res = Math.min(nextOne, res)
}
nextOne = item + 1
}
res = res ? Math.min(nextOne, res) : nextOne
return res
}

写回答

1回答

快乐动起来呀

2019-07-14

试下 [-5] 这个输入,输出不对,再考虑下边界

0
0

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 395 问题

查看课程