leetcode:268. 丢失的数字(异或运算)

简介: leetcode:268. 丢失的数字(异或运算)

一、题目

 

函数原型:

int missingNumber(int* nums, int numsSize)

二、思路:

0 - n缺失一个数字,那么将数组中所有的数字按位异或,再按位异或0 - n的所有数字,由于

x ^ x = 0,0 ^ x = x,因此最终运算结果就是缺失的数字。

本题类似找单身狗:《leetcode:136. 只出现一次的数字(找单身狗)》

三、代码:

int missingNumber(int* nums, int numsSize) {
    int answer=0;
    for(int i=0;i<numsSize;i++)
    {
        answer^=nums[i];
        answer^=i;
    }
    return answer^numsSize;
}


目录
打赏
0
0
0
0
5
分享
相关文章
|
10月前
[leetcode 数位运算] 2578.最小分割和
[leetcode 数位运算] 2578.最小分割和
|
10月前
leetcode-592:分数加减运算
leetcode-592:分数加减运算
66 0
|
10月前
|
leetcode-241:为运算表达式设计优先级
leetcode-241:为运算表达式设计优先级
70 0
|
10月前
[leetcode 数位运算] 2939. 最大异或乘积 M
[leetcode 数位运算] 2939. 最大异或乘积 M
LeetCode 1318. 或运算的最小翻转次数
LeetCode 1318. 或运算的最小翻转次数
LeetCode每日一题——592. 分数加减运算
给定一个表示分数加减运算的字符串 expression ,你需要返回一个字符串形式的计算结果。
127 0
LeetCode 02:“两数相加”,小学加法运算而已?
LeetCode 02:“两数相加”,小学加法运算而已?
135 0
LeetCode 02:“两数相加”,小学加法运算而已?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等