一個長度為n-1的遞增排序數組中的所有數字都是唯一的,并且每個數字都在范圍0~n-1之內。在范圍0~n-1內的n個數字中有且只有一個數字不在該數組中,請找出這個數字。
示例 1:
輸入: [0,1,3]
輸出: 2
代碼
class Solution {public int missingNumber(int[] nums) {int n=nums.length,l=0,r=n-1;while (l<r){int mid=(r-l)/2+l;if(mid!=nums[mid])r=mid;//左部分是不按順序排列的else l=mid+1;//左部分是按順序排列的,所以查找右邊}return l==n-1&&l==nums[l]?l+1:l;//全部都按順序,缺的就是n}
}