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

相关推荐
月明长歌1 分钟前
【码道初阶-Hot100】LeetCode 3. 无重复字符的最长子串:从错误直觉到滑动窗口,彻底讲透为什么必须判断 `map.get(c) >= left`
java·算法·leetcode·哈希算法
艾莉丝努力练剑3 分钟前
System V IPC内核实现精析
linux·运维·服务器·网络·c++·人工智能·学习
菜菜小狗的学习笔记3 分钟前
黑马程序员java web学习笔记--项目部署(Docker)
java·笔记·学习
junnhwan3 分钟前
LeetCode Hot 100——贪心算法
java·算法·leetcode
魑魅魍魉都是鬼4 分钟前
java 的排序算法
java·算法·排序算法
星幻元宇VR4 分钟前
VR校园安全学习机|让安全教育“沉浸”进课堂的创新体验
科技·学习·安全·vr·虚拟现实
2401_853576505 分钟前
并行算法在STL中的应用
开发语言·c++·算法
晓纪同学5 分钟前
ROS2 -06-动作
java·数据库·python·算法·机器人·ros·ros2
枫叶丹46 分钟前
【HarmonyOS 6.0】Media Kit:细粒度控制屏幕捕获,详解图像填充模式C API
c语言·开发语言·华为·harmonyos
无限进步_6 分钟前
【C++】字符串中的字母反转算法详解
开发语言·c++·ide·git·算法·github·visual studio