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

相关推荐
Herbert_hwt3 分钟前
C语言位操作符详解:从入门到实战应用
c语言·算法
坚持学习前端日记6 分钟前
个人运营小网站的最佳策略
java·学习·程序人生·职场和发展·创业创新
崇山峻岭之间13 分钟前
Matlab学习记录20
开发语言·学习·matlab
童话名剑14 分钟前
迁移学习示例 和 数据增强(吴恩达深度学习笔记)
笔记·深度学习·数据增强·迁移学习
笔夏28 分钟前
【安卓学习之myt】adb常用命令
android·学习·adb
ss27335 分钟前
CompletionService:Java并发工具包
java·开发语言·算法
额呃呃40 分钟前
select和poll之间的性能对比
开发语言·算法
王哈哈^_^40 分钟前
【完整源码+数据集】道路交通事故数据集,yolo车祸检测数据集 7869 张,交通事故级别检测数据集,交通事故检测系统实战教程
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·毕业设计
浅川.2541 分钟前
数据结构(复习笔记)
笔记
星轨初途41 分钟前
C++ string 类详解:概念、常用操作与实践(算法竞赛类)
开发语言·c++·经验分享·笔记·算法