【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~5:0 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;
    }
};
相关推荐
青少儿编程课堂19 分钟前
后缀自动机解析:本质不同子串与最长重复片段统计
c++·python·算法·bfs·信息学竞赛
朝朝辞暮i19 分钟前
C++ 第 12 课:局部变量、作用域、变量生命周期
开发语言·c++·算法
狗凯之家源码网29 分钟前
淘客口令落地页生成器 PHP 版深度评测
开发语言·php
画绛集美术36 分钟前
本地化部署LLM用于美术史问答:一间美术教室的实践记录
开发语言·php
八解毒剂1 小时前
【计组】中央处理器CPU
java·开发语言·计算机组成原理
乐迪信息2 小时前
港口船舶逆行怎么管?AI防爆摄像机搭载智能检测算法
大数据·人工智能·深度学习·算法·计算机视觉
FakeOccupational2 小时前
【电路笔记 信号】DBPSK 波形查找表+脉冲成形(升余弦+根升余弦滤波)
开发语言·笔记
打工仔折腾 AI2 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
ZealSinger2 小时前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
无名猿2 小时前
shared_ptr 完全指南:引用计数、控制块与开销
c++·性能优化·内存管理·标准库·现代c++