【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;
    }
};
相关推荐
wengqidaifeng几秒前
第十七届蓝桥杯C/C++软件赛B组算法题讲解
c语言·c++·蓝桥杯
无语......8 分钟前
安装uv并管理 Python / 包
开发语言·python·uv
道剑剑非道10 分钟前
【C++ 仿 MFC 反射系统】
开发语言·c++·mfc
YuanDaima204828 分钟前
双指针基础原理与题目说明
数据结构·人工智能·python·算法·leetcode·手撕代码
别或许29 分钟前
5、高数----一元函数微分学的应用(一)几何应用
算法
wayz1139 分钟前
Day 5:KNN算法与相似K线匹配
人工智能·算法·机器学习
Elastic 中国社区官方博客41 分钟前
在 Elastic 中使用 OpenTelemetry 内容包可视化 OpenTelemetry 数据
大数据·开发语言·数据库·elasticsearch·搜索引擎
C+++Python44 分钟前
如何学习Python的应用领域知识?
开发语言·python·学习
疯狂打码的少年1 小时前
【Day12 Java转Python】Python工程的“骨架”——模块、包与__name__
java·开发语言·python
晨曦中的暮雨1 小时前
Java集合类型主要有哪些?以及各自原理
数据结构·算法