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

相关推荐
断剑zou天涯34 分钟前
【算法笔记】窗口内最大值或最小值的更新结构
java·笔记·算法
smj2302_7968265236 分钟前
解决leetcode第3753题范围内总波动值II
python·算法·leetcode
Naiva2 小时前
【小技巧】Microchip 把 MPLAB X IDE工程编码改成 UTF-8
笔记
骑着猪去兜风.3 小时前
线段树(二)
数据结构·算法
fengfuyao9854 小时前
竞争性自适应重加权算法(CARS)的MATLAB实现
算法
薛慕昭4 小时前
嵌入式 C 语言猜大小游戏设计与实现
c语言·游戏
散峰而望4 小时前
C++数组(二)(算法竞赛)
开发语言·c++·算法·github
leoufung4 小时前
LeetCode 92 反转链表 II 全流程详解
算法·leetcode·链表
wyhwust5 小时前
交换排序法&冒泡排序法& 选择排序法&插入排序的算法步骤
数据结构·算法·排序算法
利刃大大5 小时前
【动态规划:背包问题】完全平方数
c++·算法·动态规划·背包问题·完全背包