/*class Solution {
public:
int missingNumber(vector<int>& nums) {
int len = nums.size();
if(len == 0) return -1;
int sum = 0;
for(const int& val : nums) {
sum += val;
}
return (len + 1) * len / 2 - sum;
}
};*/
class Solution {
public:
//异或xor:;两个相同的数异或结果为0,任意一个数和0异或结果为其本身,通过向量元素和其下标异或,得到缺失数字
int missingNumber(vector<int>& nums) {
int len = nums.size();
if(len == 0) return -1;
int ans = 0 ^ nums[0];
for(int i = 1; i < len; i++) {
ans ^= i ^ nums[i];
}
return ans ^ len;
}
};
LeetCode268. 缺失数字
最新推荐文章于 2020-09-19 22:01:29 发布