【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;
    }
};
相关推荐
不想写代码的星星5 分钟前
重识 std::tuple:一个被低估的编译期异构容器
开发语言·c++
aqiu11111122 分钟前
[特殊字符]【算法日记 14】数论入门神题:最大公约数与最小公倍数的“乘积守恒定律”
算法
techdashen25 分钟前
用 Rust 写生产级服务要踩多少坑——Cloudflare 把答案做成了一个开源库
开发语言·rust·开源
码界奇点28 分钟前
基于Python的微信公众号爬虫系统设计与实现
开发语言·爬虫·python·毕业设计·web·源代码管理
保卫大狮兄35 分钟前
一文讲清:仓库管理最核心的10个公式
人工智能·算法·仓库管理
瞎折腾啥啊40 分钟前
VCPKG详细使用教程
linux·c++·cmake·cmakelists
落雪寒窗-42 分钟前
Python开发个人日常记录
开发语言·python
启山智软1 小时前
【 商城系统源码:Java与PHP的区别】
java·开发语言·php
练习时长两年半的程序员小胡1 小时前
Java程序员转大模型应用开发专题(一):核心基础概念
java·开发语言·transformer·自注意力
源图客1 小时前
PHP开发环境搭建
开发语言·php