原题链接
解题思路
题目要求时间复杂度n,空间复杂度1。所以不能用排序或者数组记录。
a^b^b = a;由题意肯定有缺的数字,那最后一个数字就是n,此可得当所有数和下标进行异或运算,然后再最后异或n就得到缺的数字。
解题代码
public class Solution {
public int missingNumber(int[] nums) {
int xor = 0;
int i = 0;
for(;i < nums.length;i++) {
xor = xor^i^nums[i];
}
return xor^i;
}
}