Geek

博客园 首页 新随笔 联系 订阅 管理

从0,1,2,...,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小。

题目描述
从0,1,2,...,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小。
示例1
输入
复制
[0,1,2,3,4,5,7]
返回值
复制
6

class Solution {
public:
    /**
     * 找缺失数字
     * @param a int整型一维数组 给定的数字串
     * @param aLen int a数组长度
     * @return int整型
     */
    int solve(int* a, int aLen) {
        // write code here
        int l = 0, r = aLen-1;
        while (l<r) {
            int mid = l+(r-l)/2;
            if (a[mid] == mid) {
                l = mid +1;
            }else  {
                r = mid;
            }
        }
        return l;
    }
};

posted on 2020-11-30 21:08  .geek  阅读(509)  评论(0编辑  收藏  举报