由于异或运算满***换律和结合律,所以总是能把成对儿的数字消去,留下缺失的那个元素的。
图片说明

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 找缺失数字
     * @param a int整型vector 给定的数字串
     * @return int整型
     */

    int solve(vector<int>& a) {
        // write code here

        if(!a.size()) return 0;

        int n = a.size();
        int res = 0;

        // 先和新补的索引异或一下
        res^= n;

        // 和其他的元素、索引做异或
        for(int i = 0;i<n;i++){
            res^= i^a[i];
        }

        return res;






    }
};