力扣 面试题17.04.消失的数字

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

示例 1:

输入:[3,0,1]

输出:2

示例 2:

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

输出:8

解答思路:使用异或思想解题。

c 复制代码
int missingNumber(int* nums, int numsSize)
{
    int sum = 0;
    for (int i=0;i<numsSize;i++)
    {
        sum ^= i;//每个i与0异或,i为0 ~ numsSize-1  (因为这里,最大的数是numsSize-1,没有异或numsSize,所以最后返回值的时候还需要异或一个numsSize)
        sum ^= nums[i];//数组中每个值与0 ~ numsSize-1异或。共numsSize个数
        //数组中的值为0 ~ numsSize,但是其中少一个值,共numsSize个数。
        //
    }
    return sum^numsSize;
}
相关推荐
不熬夜的熬润之3 分钟前
APCE-平均峰值相关能量
人工智能·算法·计算机视觉
yzx9910135 分钟前
实时数据流处理实战:从滑动窗口算法到Docker部署
算法·docker·容器
呜喵王阿尔萨斯11 分钟前
argc & argv
c语言·c++
爱编码的小八嘎22 分钟前
C语言完美演绎6-1
c语言
她叫我大水龙27 分钟前
MSYS2的C/C++,python2,python3编译环境安装脚本
c语言·c++
佩奇大王27 分钟前
P674 三羊献瑞
算法·深度优先·图论
studyForMokey1 小时前
【Android面试】View绘制流程专题
android·面试·职场和发展
发疯幼稚鬼1 小时前
大整数乘法运算
c语言·算法
励志的小陈1 小时前
数据结构Stack(C语言--用数组实现栈)
c语言·数据结构
宵时待雨2 小时前
C++笔记归纳17:哈希
数据结构·c++·笔记·算法·哈希算法