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

Posted buaazhhx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指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);
}

   

以上是关于剑指offer-面试题53_2-0~n-1中缺失的数字-二分查找的主要内容,如果未能解决你的问题,请参考以下文章

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

剑指 Offer 53

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

剑指Offer面试题62. 圆圈中最后剩下的数字

剑指offer-面试题53_3-数组中数值和下标相等的元素-二分查找

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