【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;
    }
};
相关推荐
布莱克6052 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
布莱克6052 小时前
Swift 可选类型(Optionals)详解:从原理到实战
开发语言·安全·ssh·swift·optional·可选类型
通信小呆呆2 小时前
电子战抗干扰技术:当“不被干扰”成为一种系统
算法·通信·mimo·isac
老歌老听老掉牙2 小时前
案例 7:二维 Rosenbrock 函数最小值(香蕉函数)
c++·pso
笑容掩饰我的失落2 小时前
区块链从小白到精通(八):从零实现一个标准 ERC-20 代币(完整可运行代码)
算法·区块链·php·智能合约·哈希算法
Severus_black3 小时前
【C++初阶】Stack、Queue算法题大练兵!
c语言·c++·算法·stl
瑞雪兆丰年兮4 小时前
JavaWeb-day14-SpringBootWeb原理篇
java·开发语言·spring boot·spring·bean·mybatis·javaweb
2601_967979125 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
SomeOtherTime6 小时前
Rust生命周期介绍(AI回答)
开发语言·后端·rust
程序猿打工仔6 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法