【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;
    }
};
相关推荐
十五年专注C++开发几秒前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
Momentary_SixthSense4 分钟前
设计模式之工厂模式
java·开发语言·设计模式
‎ദ്ദിᵔ.˛.ᵔ₎13 分钟前
STL 栈 队列
开发语言·c++
勿忘,瞬间18 分钟前
数据结构—顺序表
java·开发语言
张張40822 分钟前
(域格)环境搭建和编译
c语言·开发语言·python·ai
weixin_4235339926 分钟前
【Windows11离线安装anaconda、python、vscode】
开发语言·vscode·python
2401_8920709827 分钟前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
fzb5QsS1p29 分钟前
告别重复造轮子,Qt 快速开发脚手架
开发语言·qt·php
郭涤生30 分钟前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
航Hang*31 分钟前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全