int missingNumber(int* nums, int numsSize)
{
//首先判断数组首元素或末元素是否缺失
if (nums[0]!=0)
{
return 0;
}
if (nums[numsSize-1]!=numsSize)
{
return numsSize;
}
//如果首,末元素都不缺失,就用二分查找去数组中寻找
int left = 0;
int right = numsSize - 1;
int mid;
while (left<=right)
{
mid = left + (right - left) / 2;
if (nums[mid]==mid)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return left;
}
03-29
251
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)