剑指 Offer 53 - II. 0~n-1中缺失的数字

思路
这里仔细研究一下,可以发现题目描述有些不正确,正确意思应该是在一个长度为n的数组中,每个数字都是唯一的,数字范围是0 ~ n,那么说明有一个数字不存在,因此只需要对所有元素依次异或,然后异或1 ~ n,那么最后得到的值就是不出现的数字
代码
public int missingNumber(int[] nums) {
int res=0;
for(int i=0;i<nums.length;i++){
res^=nums[i];
res^=i+1;
}
return res;
}
本文解析了如何通过异或运算解决剑指Offer中关于长度为n数组中缺失数字的问题。关键在于将数组元素与0到n的数逐一异或,最终结果即为缺失的数字。
275

被折叠的 条评论
为什么被折叠?



