剑指 Offer 53


本题 题目链接

题目描述


我的题解

二分法

思路分析

  • 排序数组中的搜索问题,首先想到二分法
    • 当nums[center] > center 时,缺少的数在左区间
    • 当nums[center] = center 时,缺少的数在右区间

代码如下

    public int missingNumber(int[] nums) {
        int l = 0, r = nums.length - 1;
        while (l <= r) {      
            int cent = (r + l) / 2;
            if (nums[cent] > cent)  // 左区间
                r = cent - 1;
            else         // == 右区间 
                l = cent+1;
        }
        return r+1;
    }

原文地址:https://www.cnblogs.com/duduwy/p/13390555.html