【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个数的和

相关推荐
zhangrelay7 分钟前
蓝桥云课五分钟-通关自动控制-octave
笔记·学习
逸风尊者9 分钟前
XGBoost模型工程使用
java·后端·算法
LUVK_18 分钟前
第七章查找
数据结构·c++·考研·算法·408
jiayong2322 分钟前
第 36 课:任务详情抽屉快捷改状态
开发语言·前端·javascript·vue.js·学习
khalil102024 分钟前
代码随想录算法训练营Day-31贪心算法 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树
数据结构·c++·算法·leetcode·贪心算法·二叉树·递归
笔夏29 分钟前
【安卓学习之混淆】记录一些混淆导致闪退
android·学习
南境十里·墨染春水33 分钟前
linux学习进展 进程间通讯——共享内存
linux·数据库·学习
光影少年39 分钟前
中级前端需要会的东西都有那些?
前端·学习·前端框架
一行代码一行诗++1 小时前
C语言中scanf详解
c语言·开发语言
斯维赤1 小时前
Python学习超简单第八弹:连接Mysql数据库
数据库·python·学习