本题源自leetcode 268
-------------------------------------------------------------
思路:用 异或 操作符、俩个相同的数异或等于0 ,与 0 异或等于自身。
代码:
int missingNumber(vector<int>& nums) {
int n = nums.size();
int res = n;
for(int i = 0;i < n;i++){
res ^= i;
res ^= nums[i];
}
return res;
}
思路2: 排序 二分查找。排序后,对应的数在数组对应的位置上
代码:
int missingNumber(vector<int>& nums) {
int n = nums.size();
sort(nums.begin(),nums.end());
int left = 0;
int right = n;
while(left < right){
int mid = (left + right) >> 1;
if(mid < nums[mid])
right = mid;
else
left