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

相关推荐
爱理财的程序媛4 小时前
openclaw 盯盘实践
算法
MobotStone7 小时前
Google发布Nano Banana 2:更快更便宜,图片生成能力全面升级
算法
颜酱11 小时前
队列练习系列:从基础到进阶的完整实现
javascript·后端·算法
用户57573033462411 小时前
两数之和:从 JSON 对象到 Map,大厂面试官到底在考察什么?
算法
程序猿追11 小时前
“马”上行动:手把手教你基于灵珠平台打造春节“全能数字管家”
算法
西岸行者1 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
norlan_jame1 天前
C-PHY与D-PHY差异
c语言·开发语言
ZPC82101 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82101 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人