LeetCode 268 ----- 缺失数字
题目描述
给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。
思路
位运算(异或)
对一个数进行两次完全相同的异或运算会得到原来的数
本题中,将数组下标与数组元素,和数组长度同时异或,就会得到缺失的数
实现
import java.util.Arrays;
/**
* Author: lisiyu
* Created: 2019/12/18
*/
blic class MissingNumber268 {
public int missingNumber(int[] nums) {
int missing = nums.length;
for (int i = 0; i <nums.length; i++) {
missing ^= i ^ nums[i];
}
return missing;
}
}