/**
* 1. 从小到大排序(选择排序 | 冒泡排序)
* 2. 判断当前值是否 > 0;
* 3. 首个大于0的值,是否为1?不为1,则返回1;为1,继续
* 4. 当前值与上一值的差是否 > 1,若大于1,则返回上一值 + 1
* 5. 遍历结束,则返回最大值 + 1;
*/
export default (arr) => {
let hadPInteger = false
for (let i = 0, len = arr.length; i < len; i++) {
for (let j = len - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
}
}
if (arr[i] > 0 && !hadPInteger) {
hadPInteger = true
if (arr[i] === 1) {
continue
} else {
return 1
}
} else if (hadPInteger) {
if (arr[i] - arr[i - 1] === 1) {
continue
} else {
return arr[i - 1] + 1
}
}
}
return arr.pop() + 1
}
测试用例同老师的…