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

相关推荐
calvinpaean14 小时前
Metric3D Towards Zero-shot Metric 3D Prediction from A Single Image 论文学习
学习·3d
好学且牛逼的马14 小时前
【Hot100|15-LeetCode 238. 除自身以外数组的乘积】
数据结构·算法·leetcode
Hammer_Hans14 小时前
DFT笔记25
笔记
Engineer邓祥浩14 小时前
设计模式学习(22) 23-20 解释器模式
学习·设计模式·解释器模式
zpedu14 小时前
什么是CISA证书?有啥作用
学习
ooope14 小时前
求资源网站?涵盖影视、学习、软件等多领域的资源?
学习
2601_9497202614 小时前
flutter_for_openharmony手语学习app实战+个人中心实现
学习·flutter
Tisfy14 小时前
LeetCode 3651.带传送的最小路径成本:动态规划
算法·leetcode·动态规划·题解·排序
努力学习的小廉14 小时前
我爱学算法之—— 递归回溯综合(一)
算法·深度优先
m0_7369191014 小时前
C++中的策略模式实战
开发语言·c++·算法