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

/*
题目:
	寻找递增数组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);
}

   

猜你喜欢

转载自www.cnblogs.com/buaaZhhx/p/12088493.html