赞
踩
问:数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。在O(n)时间内完成。
使用位操作符 ^ 来解决此问题
每一位都进行异或相同为0不同为1
一个数异或同一个数两次,结果还是那个数。
题解思路:用x=0先与0到n个数进行异或然后在与数组nums里的数进行异或最后得出缺失的整数。
- int missingNumber(int* nums, int numsSize)
- {
- int x=0;
- int i=0;
- for(i=0;i<numsSize;i++)
- {
- x^=i;
- }
- for(i=0;i<numsSize;i++)
- {
- x^nums[i];
- }
- return x;
- }
以上为leetcode消失的数字的题解。
欢迎大家评论留言,点赞支持和指正,感谢老铁看到这里。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。