class Solution {
public:
int left=0,right=nums.size()-1,mid;
while(left < right){
mid = (left + right)/2;
if(mid == nums[mid]) left=mid+1;
else if(mid < nums[mid]) right=mid;
}
if(right<nums[right]) return right;
for(int num:nums){
n ^= num;
n ^= i;
i++;
}
return n;
}
};
public:
int missingNumber(vector<int>& nums) {
//我用了二分查找
/* sort(nums.begin(),nums.end());int left=0,right=nums.size()-1,mid;
while(left < right){
mid = (left + right)/2;
if(mid == nums[mid]) left=mid+1;
else if(mid < nums[mid]) right=mid;
}
if(right<nums[right]) return right;
return nums.size();*/
//这个用了异或运算,好厉害
int n=nums.size(),i=0;for(int num:nums){
n ^= num;
n ^= i;
i++;
}
return n;
}
};