找出数组中缺失的那个数

找出数组中缺失的那个数

问题

这个题目说的是,数组元素在 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;
}

 上一篇
翻转一个数的比特位 翻转一个数的比特位
翻转一个数的比特位问题 给定32位无符号整数的反位。 输入:00000010100101000001111010011100 输出:00111001011110000010100101000000 说明:输入的二进制字符串0000001
2019-01-05
下一篇 
字符串数组最大乘积 字符串数组最大乘积
字符串数组最大乘积问题 题目描述:字符串数组的字符串只含有小写字符。求解字符串数组中两个字符串长度的最大乘积,要求这两个字符串不能含有相同字符。 Given ["abcw", "baz", "
2019-01-05
  目录