力扣 面试题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;
}
相关推荐
0 0 03 小时前
CCF-CSP 39-2 水印检查(watermark)【C++】
c++·算法
plus4s3 小时前
2月15日(78,80,81题)
c++·算法·图论
能源系统预测和优化研究4 小时前
【原创改进代码】考虑碳交易与电网交互波动惩罚的共享储能电站优化配置与调度模型
算法·能源
935964 小时前
机考27 翻译21 单词14
c语言·数据结构·算法
Riemann~~5 小时前
C语言嵌入式风格
c语言·开发语言
回敲代码的猴子5 小时前
2月14日打卡
算法
blackicexs6 小时前
第四周第七天
算法
Once_day6 小时前
GCC编译(1)入门概述
c语言·编译和链接
期末考复习中,蓝桥杯都没时间学了6 小时前
力扣刷题19
算法·leetcode·职场和发展
Renhao-Wan6 小时前
Java 算法实践(四):链表核心题型
java·数据结构·算法·链表