力扣leetcode刷题笔记之消失的数字


在这里插入图片描述

🚙前言

本人是西安邮电大学计科专业一名普通的大学生,这是我在力扣上的刷题笔记,希望对大家有帮助。
在这里插入图片描述


🚗题目描述

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?

注意:本题相对书上原题稍作改动

示例 1:

输入:[3,0,1]
输出:2

示例 2:

输入:[9,6,4,2,3,5,7,0,1]
输出:8

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/missing-number-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


🚕题目分析

在这里我们用到了位运算符,异或(^)

异或是相同为0,不同为1,所以,0和x异或答案是x

拿上面的示例1举例:

0^ 3 ^ 0 ^ 1 ^ 0 ^ 1 ^ 2 ^ 3 = 3 ^ 1 ^ 1 ^ 2 ^ 3=1 ^ 1 ^ 2 ^ 3 ^ 3 = 0 ^ 2^0=2


🏍代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int missingNumber(int* nums, int numsSize){
int i=0;
int j=0;
int x=0;
for (i=0;i<numsSize;i++)
{
x^=nums[i];
}
for(j=0;j<numsSize+1;j++)
{
x^=j;
}
return x;
}


🏎结语

既然都看到这里了,点个赞再走呗

在这里插入图片描述


力扣leetcode刷题笔记之消失的数字
https://6jackjiang.github.io/2022/03/24/categories/刷题笔记/力扣leetcode刷题笔记之消失的数字/
作者
米兰的小铁匠
发布于
2022年3月24日
许可协议