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


本题 题目链接

题目描述

剑指 Offer 53 - II. 0~n-1中缺失的数字_第1张图片

我的题解

二分法

剑指 Offer 53 - II. 0~n-1中缺失的数字_第2张图片

思路分析

  • 排序数组中的搜索问题,首先想到二分法
    • 当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;
    }

你可能感兴趣的:(剑指 Offer 53 - II. 0~n-1中缺失的数字)