个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字
    都在范围0 ~ n-1之内。在范围0 ~ n-1内的n个数字中有且只有个数字不在该数组中

    请找出这个数字。

    1. function foo(arr){
    2. if(!Array.isArray(arr)){
    3. return console.log('可以做类型转换,不做处理了')
    4. }
    5. let left = 0;
    6. let right = arr.length;
    7. let mid;
    8. function fn (){
    9. mid = Math.floor((left + right) / 2);
    10. if(left>= right) return console.log(`不在数组中的数字是:${mid+1}`);
    11. if(arr[mid] <= mid){
    12. left = mid + 1;
    13. } else {
    14. right = mid -1;
    15. }
    16. return fn();
    17. }
    18. fn()
    19. }
    20. foo([0,1,3,4,5]); // 2
    21. foo([0,1,2,3,5]); // 4
    22. foo([0,1,2,3,4,5,7]); // 6
    23. foo([0,1,2,3,4,5,6,8]); // 7