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

相关推荐
javgo.cn4 分钟前
Markune:一个开源的 Local-first Markdown 工作区
笔记·编辑器
pen-ai19 分钟前
【优化方法】最小二乘:从误差平方到线性与非线性拟合
人工智能·算法·机器学习
诗词在线23 分钟前
江上渔者|原文+注释+译文+赏析+考点
学习
逆境不可逃1 小时前
Pi Agent 学习笔记:不同模型如何接入同一套工具循环
笔记·学习
君科程序定做1 小时前
用 IDL 处理高分一号(GF-1 / GF-1B/C/D)数据
c语言·开发语言
词却1 小时前
OpenCV学习:dlib 人脸检测
人工智能·opencv·学习
Q26433650231 小时前
【有源码】基于机器学习的电信网络诈骗话术语义识别与可视化分析系统 XGBoost算法+Hadoop+Spark
大数据·hadoop·算法·机器学习·spark·毕业设计·课程设计
爱吃苹果的日记本1 小时前
数据结构第三课补充(空间复杂度)
数据结构·学习
♪飙♪1 小时前
电气笔记——表的认识
笔记
不会就选b1 小时前
算法日常・每日刷题--贪心<11>
算法·leetcode·职场和发展