mxllcf

导航

剑指OFFER53 二分查找

剑指 Offer 53 - II. 0~n-1中缺失的数字

 

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

 

记住一件事:所有的排序数组,一旦出现就赶紧联想二分查找。。千万别遍历。。

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

二分查找典型应用。

 

posted on 2021-11-04 19:28  mxllcf  阅读(9)  评论(0编辑  收藏  举报