LeetCode 面试题17.04 消失的数字

题目描述:
数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。

思路:
方法一:
先排序,然后查找数字与索引不相等的数
方法二:异或(a ^a ^b =b;a ^b ^b=a);

代码如下:
方法一:

class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int n=nums.size();
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i++){
            if(i!=nums[i])
            return i;
        }
        return n;
    }
};

方法二:

class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int n=nums.size();
        for(int i=0;i<nums.size();i++){
            n^=nums[i];
            n^=i;
        }
        return n;
    }
};

你可能感兴趣的:(leetcode)