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;
}


目录
相关文章
|
3月前
[leetcode 数位运算] 2578.最小分割和
[leetcode 数位运算] 2578.最小分割和
|
3月前
leetcode-592:分数加减运算
leetcode-592:分数加减运算
34 0
|
3月前
|
测试技术
leetcode-241:为运算表达式设计优先级
leetcode-241:为运算表达式设计优先级
25 0
|
3月前
[leetcode 数位运算] 2939. 最大异或乘积 M
[leetcode 数位运算] 2939. 最大异或乘积 M
LeetCode 1318. 或运算的最小翻转次数
LeetCode 1318. 或运算的最小翻转次数
LeetCode每日一题——592. 分数加减运算
给定一个表示分数加减运算的字符串 expression ,你需要返回一个字符串形式的计算结果。
99 0
Leetcode --- 数学运算问题2
Leetcode --- 数学运算问题2
|
机器学习/深度学习 算法 Serverless
Leetcode --- 数学运算问题1
Leetcode --- 数学运算问题1
|
存储 算法
LeetCode 02:“两数相加”,小学加法运算而已?
LeetCode 02:“两数相加”,小学加法运算而已?
112 0
LeetCode 02:“两数相加”,小学加法运算而已?