【C++算法】34.位运算_丢失的数字

文章目录


题目链接:

268. 丢失的数字


题目描述:


解法

  1. 哈希表

    创建一个0~5的数组

    从前往后遍历一下,有的数字就在表里面标记一下,最后看一下哪些数字没有被标记过。

  2. 高斯求和

    先求出应该有的和:(首项+末项)*项数÷2

    然后减去数组的和

  3. 位运算(异或运算的运算律)

    1. a^0=a
    2. a^a=0
    3. a^b^c=a^(b^c)

    原始数组:nums:[0,1,3,5,4]

    0~50 1 2 3 4 5

    然后把一堆数异或在一起


C++ 算法代码:

cpp 复制代码
class Solution 
{
    public:
    int missingNumber(vector<int>& nums) 
    {
        int ret = 0;
        for(auto x : nums) ret ^= x;
        for(int i = 0; i <= nums.size(); i++) ret ^= i;
        return ret;
    }
};
相关推荐
蓑衣夜行2 分钟前
QtWebEngine 自动重启方案
开发语言·c++·qt·web·qwebengine
爱喝热水的呀哈喽4 分钟前
chns方程 推导简单的能量耗散律,分部积分向量形式,sav初简介
算法
Source.Liu4 分钟前
【LibreCAD】点实体源码解析
c++·qt·cad
lsx2024066 分钟前
XQuery 实例详解
开发语言
代码游侠7 分钟前
应用——统计文件字符数、单词数、行数
服务器·笔记·算法
hefaxiang7 分钟前
猜数字小游戏--用分支和循环实现
c语言·开发语言
小清兔9 分钟前
一个unity中URP的环境下旋转天空盒的脚本(RotationSky)
开发语言·数据库·学习·程序人生·unity·c#·游戏引擎
岁岁的O泡奶12 分钟前
NSSCTF_crypto_[MTCTF 2021 final]ezRSA
经验分享·python·算法·密码学·crypto
San30.12 分钟前
从原型链到“圣杯模式”:JavaScript 继承方案的演进与终极解法
开发语言·javascript·原型模式
乌托邦2号19 分钟前
Qt5之中文字符串转换
开发语言·qt