力扣 面试题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;
}
相关推荐
Gu_shiwww25 分钟前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
你怎么知道我是队长1 小时前
C语言---循环结构
c语言·开发语言·算法
艾醒1 小时前
大模型面试题剖析:RAG中的文本分割策略
人工智能·算法
程序猿编码2 小时前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
纪元A梦3 小时前
贪心算法应用:K-Means++初始化详解
算法·贪心算法·kmeans
_不会dp不改名_4 小时前
leetcode_21 合并两个有序链表
算法·leetcode·链表
mark-puls4 小时前
C语言打印爱心
c语言·开发语言·算法
Python技术极客4 小时前
将 Python 应用打包成 exe 软件,仅需一行代码搞定!
算法
西阳未落4 小时前
C语言柔性数组详解与应用
c语言·开发语言·柔性数组
吃着火锅x唱着歌4 小时前
LeetCode 3302.字典序最小的合法序列
leetcode