力扣leetcode 面试题消失的数字题解

Posted apple_52909052

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣leetcode 面试题消失的数字题解相关的知识,希望对你有一定的参考价值。

 问:数组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消失的数字的题解。

欢迎大家评论留言,点赞支持和指正,感谢老铁看到这里。

以上是关于力扣leetcode 面试题消失的数字题解的主要内容,如果未能解决你的问题,请参考以下文章

力扣Leetcode 面试题56 - I. 数组中数字出现的次数

精选力扣500题 第23题 LeetCode 2. 两数相加c++详细题解

精选力扣500题 第32题 LeetCode 31. 下一个排列c++ / java 详细题解

精选力扣500题 第28题 LeetCode 46. 全排列c++ / java 详细题解

LeetCode 面试题 17.19. 消失的两个数字

精选力扣500题 第44题 LeetCode 82. 删除排序链表中的重复元素 IIc++/java详细题解