一、题目描述
二、解题步骤
class Solution {
public:
int missingNumber(vector<int>& nums) {
int left=0;
int right=nums.size()-1;
while(left<=right)
{
int mid=left+(right-left)/2;
if(nums[mid]==mid) //因为这个数组是递增的,如果中间的数等于下标,则证明左边没问题,下一步应该检查右边的
{
left=mid+1;
}
else// 不等于,就说明左边有问题
{
right=mid-1;
}
}
return left; //最后总是left 扫描到出错的地方
}
};
总结
时间复杂度:O(logn)