链接:
面试题53 - II. 0~n-1中缺失的数字
题解:
前缀异或或者二分
1.
class Solution { public: int missingNumber(vector<int>& nums) { int size=nums.size(); int yi=0; for(int i=0;i<size+1;i++) yi^=i; int yi2=0; for(int i=0;i<size;i++) yi2^=nums[i]; int res=yi^yi2; return res; } };
2.
class Solution { public: int missingNumber(vector<int>& nums) { int left = 0; int right=nums.size(); while(left<right) { int mid=(left+right)>>1; if(nums[mid]==mid) left=mid+1; else right=mid; } return left; } };