【Leetcode】【消失的数字】【C语言】

方法一:按位异或(找单身狗)

我们知道:按位异或^操作原则:相同为零,相异为一

所以 0^a=a a ^a=0 a ^b=b ^a

c 复制代码
int missingNumber(int* nums, int numsSize){
int i = 0;
int tem1 = 0,tem2=0;
for (i = 0;i < numsSize;i++)
{
	tem1 = tem1 ^ nums[i];
}
for (i = 1;i <= numsSize;i++)
{
	tem2 = tem2 ^ i;
}
int missnum = tem1 ^ tem2;
return missnum;
}

tem1 ^ tem2时,相同的元素互相按位异或都会变成0,而消失的数字就会显现出来。

方法二:求和相减

c 复制代码
int missingNumber(int* nums, int numsSize){
    int sum1=(1+numsSize)*numsSize/2;
    int sum2=0;
    for(int i=0;i<numsSize;i++)
    {
        sum2=sum2+nums[i];
    }
    return sum1-sum2;

等差数列求和公式求前n个数的和

相关推荐
太阳上的雨天8 分钟前
AI学习ing~
学习·ai·ai编程
小小de风呀10 分钟前
de风——【从零开始学C++】(四):类和对象(下)
开发语言·c++·算法
麦田里的粮仓30 分钟前
文档站点生成器 - Fumadocs
学习
aqiu11111142 分钟前
[特殊字符]【算法日记 14】数论入门神题:最大公约数与最小公倍数的“乘积守恒定律”
算法
技术小结-李爽1 小时前
【学习】怎样把“提问题”推荐给别人
学习
sweetheart7-71 小时前
go/golang 入门学习笔记(Java/Python/C++转Go快速上手)
笔记·学习·golang·go语言
꧁꫞꯭零꯭点꯭꫞꧂1 小时前
FastAPI入门学习
学习·fastapi
保卫大狮兄1 小时前
一文讲清:仓库管理最核心的10个公式
人工智能·算法·仓库管理
Byron__1 小时前
Java JVM核心知识点复习笔记
java·jvm·笔记
爱莉希雅&&&1 小时前
MySQL MGR + MySQL Router 高可用集群完整笔记(含手动配置 + Shell 接管双路线)
linux·数据库·笔记·mysql·mysqlrouter·mysqlshell