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

相关推荐
楼田莉子几秒前
高并发内存池项目:内存池性能分析及其优化
开发语言·c++·后端·学习
zhouping@5 分钟前
[BSidesCF 2020]Hurdles
学习·php
CODE_RabbitV6 分钟前
【保姆级实操版 - STM32 系列笔记】新手入门STM32第一课:CubeMX+Keil MDK实现LED点灯
笔记·stm32·嵌入式硬件
是翔仔呐7 分钟前
第6章 UART串口通信!掌握单片机与外界的双向数据通道,实现跨设备交互
c语言·开发语言·单片机·嵌入式硬件·gitee
黎阳之光7 分钟前
AI数智筑防线 绿色科技启新篇,如何用硬核技术赋能生态安全双升级
人工智能·科技·算法·安全·数字孪生
qiumingxun8 分钟前
【Go】Go语言基础学习(Go安装配置、基础语法)
服务器·学习·golang
2201_758642649 分钟前
自定义内存检测工具
开发语言·c++·算法
H_老邪12 分钟前
Docker 学习之路-从入门到放弃:2
学习·docker·容器
Westward-sun.15 分钟前
矿物分类实战(一):从异常值到标准化——数据清洗全流程拆解
人工智能·算法·机器学习·数据清洗
hjxu201621 分钟前
【OpenClaw 龙虾养成笔记二】 自定义新的技能 Hello world
笔记·openclaw