【位运算】Leetcode 丢失的数字

题目解析

268. 丢失的数字

本题的意思就是数组的长度为n,在0,n区间中寻找缺失的一个数字


算法讲解

直观思路:排序 + Hash,顺序查找缺失的数字

优化:使用异或,首先将0,n之间所有数字异或在一起,然后将顺序异或nums数组中的每一个元素,最后异或完成之后就是那个缺失的数字

cpp 复制代码
class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int n = nums.size();
        int ret = 0;
        for(int i = 0; i <= n; i++)
        {
            ret ^= i;
        }
        //寻找缺失的数字
        for(int i = 0; i < n; i++)
        {
            ret ^= nums[i];
        }
        return ret;
    }
};

按照上面的代码,比如当前在0,4区间中寻找确实的数字,首先将ret = 0 ^ 1 ^ 2 ^ 3 ^ 4 ; 之后,再让ret = ret ^ 0 ^ 1 ^ 3 ^ 4; 得到ret = 2;


相关推荐
voidmort1 天前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域1 天前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
QiLinkOS1 天前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
小白兔奶糖ovo1 天前
【Leetcode】231. 2的幂
linux·算法·leetcode
xiaoxiaoxiaolll1 天前
《Light: Science & Applications》合并BIC实现80倍阈值单模运行:超紧凑光子晶体激光器新突破
人工智能·算法·机器学习
Peter·Pan爱编程1 天前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
-To be number.wan1 天前
算法日记 | 暴力枚举
学习·算法
s_w.h1 天前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
过期动态1 天前
【LeetCode 热题 100】接雨水
java·数据结构·算法·leetcode·职场和发展
春日见1 天前
5分钟入门强化学习之动态规划算法与实现
大数据·人工智能·python·算法·机器学习·计算机视觉