Leetcode Leetcode面试题消失数字解决方案
Q:数组 nums 包含从 0 到 n 的所有整数,但缺少一个。请编写代码以查找丢失的整数。在 O(n) 时间内完成。
使用位运算符^来解决这个问题
每一位都互斥或同0异同1
一个数是互斥的或同一个数两次,结果还是那个数。
解题思路:先用x=0对0到n的数字进行异或,然后对数组nums中的数字进行异或,最后得到缺失的整数。
- int missingNumber(int* nums, int numsSize) span> div>
- {
- < div class="hljs-ln-numbers">
int x=0< /span >; - int i=0;
- for(i=0;i
- {
- x^=i;
- < div class="hljs-ln-line"> }
- < div class="hljs-ln-line"> for(i=0;i
- {
< li> x^nums[i];- }
- 返回 x;
- }
以上是leetcode消失的数字的解决方法。
欢迎评论,留言,点赞支持指正,感谢老铁看到这里。
推荐阅读