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

相关推荐
lqqjuly几秒前
超分辨率算法深度解析(Super-Resolution Algorithms)
算法
GNG7 分钟前
《终身成长》读书笔记
笔记·学习
apocelipes40 分钟前
GNU GCC 多版本函数扩展
c语言·c++·linux编程
辰痕~43 分钟前
指针,结构体,动态内存分配
c语言
清辞8531 小时前
入门大模型工程师第十课----学习总结
大数据·人工智能·深度学习·学习·语言模型
弗锐土豆1 小时前
自动化-程序员从抽象与具象的角度学习自动化
学习·程序员·自动化·抽象·具象
bush42 小时前
嵌入式linux学习记录十二,mmap
java·linux·学习
嵌入式老牛2 小时前
液晶段码(米/日字格)识别—倾斜校正
opencv·算法·仿射变换
luj_17682 小时前
残熵算法:风险缓冲与效率优化的融合
c语言·开发语言·网络·经验分享·算法
Legendary_0082 小时前
从 DC 圆口到 USB-C PD:LED 照明设备的供电升级逻辑
c语言·开发语言