力扣 面试题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;
}
相关推荐
啦啦啦啦啦zzzz18 分钟前
数据结构:二叉树的线索化
数据结构·算法
2401_8724187837 分钟前
算法入门:并查集(Disjoint Set / Union-Find):连通性问题的利器
算法
luj_176842 分钟前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
计算机安禾1 小时前
【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
大数据·人工智能·算法·机器学习·剪枝
叶子野格1 小时前
《C语言学习:文件操作》16
c语言·开发语言·c++·学习·visual studio
货拉拉技术1 小时前
飞速发展的计算机视觉
人工智能·算法
AI科技星1 小时前
万有引力G与真空介电常数ε0全维度完整关系式汇编(基于v=c螺旋时空理论)
c语言·开发语言·前端·javascript·网络·汇编·electron
如竟没有火炬1 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
C^h1 小时前
6轴达妙机械臂
c语言
noipp1 小时前
推荐题目:洛谷 P1115 最大子段和
算法