268. 缺失数字

题目

代码

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

思路

官方的解法,翻译过来大概的思路就是:由于相同的数字和自己异或为0,0和任意数异或都为其本身。

在一个给定的[0 - n-1]范围的数组中,将 下标i和数组中最大值n与数组中每一个数字进行异或,最后结果肯定为没有出现的那个数字。不理解的可以自己举个例子去试试。

https://github.com/li-zheng-hao
原文地址:https://www.cnblogs.com/lizhenghao126/p/11053610.html