首页 > 代码库 > 丢掉的数字

丢掉的数字

题目:给一个从0到n的数组递增,里面少一个,求少的这个,例如[0,2,3],输出1,别被给的例子迷惑,也可能数组是乱序的。。。。

思路:题目要求O(n),考虑位运算,先异或0到n所有数,再异或数组的每个数。即为所求

 

public class Solution {
    public int missingNumber(int[] nums) {
        int n=nums.length,x=0;
        for(int i=0;i<=n;i++) x^=i;
        for(int i=0;i<n;i++) x^=nums[i];
        return x;
    }
}

 

丢掉的数字