给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。
进阶:
你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/missing-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
int missingNumber(int* nums, int numsSize){
int ret = 0;
for(int i = 0; i < numsSize; i++)
{
ret ^= nums[i];
ret ^= i;
}
ret ^= numsSize;
return (ret);
}
思路:直接没有缺失数字的数组进行异或运算,最后得到的结果就是丢失的数字。
1 ^ 1 = 0;
1 ^ 0 = 1;