由于异或运算满***换律和结合律,所以总是能把成对儿的数字消去,留下缺失的那个元素的。
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; } };