二分查找:剑指 Offer 53 - II. 0~n-1中缺失的数字

发布时间 2023-04-21 15:02:50作者: ZDREAMER

题目描述:

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

在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。

 

限制:

  1 <= 数组长度 <= 10000

 

解题思路:

 

 

 

复杂度分析:
  • 时间复杂度 O(logN): 二分法为对数级别复杂度。
  • 空间复杂度 O(1): 几个变量使用常数大小的额外空间。

 

class Solution{
    public int missingNumber(int nums[]){
        int i=0,j=nums.length-1;
        while(i<=j){
            int m =(i+j)/2;
            if(nums[m]==m) i = m+1;
            else j=m-1;
        }
        return i;
    }
}