码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer-面试题53_2-0~n-1中缺失的数字-二分查找

时间:2019-12-23 22:43:06      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:lse   ssi   missing   二分法   end   number   clu   ==   get   

/*
题目:
	寻找递增数组0~n-1中缺失的数字。
*/
/*
思路:
	变形二分法。
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>


using namespace std;

int getMissingNumber(vector<int> &A, int n){
    int start = 0;
    int end = n - 1;
    int mid = (start + end) / 2;
    while(start < end){
        if(mid == A[mid]){
            start = mid + 1;
        }else if(mid < A[mid]){
            end = mid - 1;
        }else{
            return -1;
        }
        mid = (start + end) / 2;
        //cout<<start<<" "<<end<<endl;
    }

    return start;
}

int main(){
   vector<int> a = {1,2,3,4,5,6,7};
   cout<<getMissingNumber(a,8);
}

   

剑指offer-面试题53_2-0~n-1中缺失的数字-二分查找

标签:lse   ssi   missing   二分法   end   number   clu   ==   get   

原文地址:https://www.cnblogs.com/buaaZhhx/p/12088493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!