剑指offer_53 0~n-1中缺失的数字

 1 int missingNumber(int* nums, int numsSize){
 2    if(nums == NULL || numsSize <= 0)
 3    return -1;
 4    int left = 0;
 5    int right = numsSize - 1;
 6    while(left <= right){
 7    int middle = (right + left)/2;
 8    if(nums[middle] !=middle){
 9        if(middle==0 || nums[middle-1] == middle -1){
10            return middle;}
11            right = middle - 1;
12        
13    }
14    else {left = middle + 1;}
15    }
16    if(left == numsSize) return numsSize; //注意星星   【1,2,3】
17   return -1;
18 }

 

posted @ 2022-04-09 23:55  YoungPzz  阅读(19)  评论(0)    收藏  举报