class Solution {
public:
int missingNumber(vector<int>& nums) {
int rStart=0,lEnd=nums.size()-1; //变量 rStart 和lEnd 分别指向 “右子数组的首位元素” 和 “左子数组的末位元素”
while(rStart<=lEnd){ //当某次mid±1后rStart>lEnd而跳出,说明上次mid=rStart或lEnd,此时rStart=lEnd+1
int mid=(rStart+lEnd)/2;
if(nums[mid]==mid) rStart=mid+1;
else lEnd=mid-1;
}
return rStart; //返回右子数组的首个元素
}
};
left<=right的=号什么时候取取决于是闭区间还是左闭右开区间,<不能处理只有一个元素的情况