【位运算】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;


相关推荐
_Narcissus_42 分钟前
二分算法笔记及例题
数据结构·c++·笔记·算法·蓝桥杯·查找·二分算法
tachibana21 小时前
RAGAS 指标解读
数据库·人工智能·算法·机器学习·架构·大模型·llm
qq_419563091 小时前
ToT 的 BFS/DFS 有个致命缺口:蒙特卡洛树搜索(MCTS)用「随机试错+统计」让大模型想得更深,小模型 + 它竟超过 GPT-4
算法·深度优先·宽度优先
万法若空2 小时前
CSP-J/S 排序算法完整专题训练题单
数据结构·算法·排序算法
凉茶钱2 小时前
【数据结构】排序(快排,选择,直接插入,希尔)
数据结构·算法·排序算法
weixin_446260852 小时前
拆解再复用:大模型智能体的跨任务技能迁移
人工智能·深度学习·算法
Brilliantwxx3 小时前
【Linux】 进程(4)七大进程状态深度解析
linux·运维·算法
青少儿编程课堂3 小时前
用图形化编程做一个“少年探险闯关”小游戏:方向键控制、碰撞检测与多关卡串起完整项目
c++·python·算法·bfs·信息学竞赛
CQU_JIAKE3 小时前
8.22【A】
算法
大熊背4 小时前
ISP图像处理中大数乘法溢出处理(一)
人工智能·python·算法·溢出处理