思路
利用二分法找到第一个与当前位置不符合的位置就行,前面都是有序的如果缺一个肯定会造成无序(注意,因为全有序说明少了最后一个,此时left也指向了最后一个)
代码示例
func missingNumber(nums []int) int {
left,right:=0,len(nums)-1
for left<=right{
mid:=(left+right)/2
if nums[mid]==mid{
left=mid+1
}else{
right=mid-1
}
}
return left
}