找出数组中缺失的那个数

找出数组中缺失的那个数

问题

这个题目说的是,数组元素在 0-n 之间,但是有一个数是缺失的,要求找到这个缺失的数。

Input: [3,0,1]
Output: 2

代码

两个相同的数异或的结果为 0,对所有数进行异或操作,最后的结果就是单独出现的那个数。

public int missingNumber(int[] nums) {
    int ret = 0;
    for (int i = 0; i < nums.length; i++) {
        ret = ret ^ i ^ nums[i];
    }
    return ret ^ nums.length;
}