【算法 | 位运算No.1】leetcode268. 丢失的数字

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【Leetcode】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。

点击直接跳转到该题目

目录

  • 1️⃣题目描述
  • 2️⃣题目解析
  • 3️⃣解题代码

1️⃣题目描述

给定一个包含 [0, n]n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

示例1:

输入:nums = [3,0,1]
输出:2
解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例2:

输入:nums = [0,1]
输出:2
解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例3:

输入:nums = [0,1]
输出:2
解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例4:

输入:nums = [0]
输出:1
解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。

注意:

  • n == nums.length
  • 1 <= n <= 104
  • 0 <= nums[i] <= n
  • nums 中的所有数字都 独一无二

2️⃣题目解析

总共有三种解法(哈希、位运算、高斯求和)。

这里只对位运算高斯求和进行解释。

位运算求解原理:

  • 相同数组进行异或结果为0
  • 0 ^ num = num

高斯求和原理:

  • 把[0,n]的和记为sum1
  • 把数组nums中所有的元素之和记为sum2
  • 丢失的数字即为sum1 - sum2

3️⃣解题代码

解法1(高斯求和):

class Solution {
public:int missingNumber(vector<int>& nums) {int n = nums.size(),sum1 = 0,sum2 = 0;for(int i = 0;i < n;i++) sum1 += nums[i];for(int i = 0;i <= n;i++) sum2 += i;return sum2 - sum1;   }
};

解法2(位运算):

class Solution {
public:int missingNumber(vector<int>& nums) {int n = nums.size(),ret = 0;for(auto x : nums) ret ^= x;for(int i = 0;i <= n;i++) ret ^= i;return ret;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言入门心法(九): 引入三方依赖

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(八): mysql驱动安装报错onnection failed Go语言入门心法(…

Springboot 常用注解

自动装配 ComponentScan 用于配置Spring需要扫描的被组件注解注释的类所在的包。 Component 用于标注一个普通的组件类&#xff0c;它没有明确的业务范围&#xff0c;只是通知Spring被此注解的类需要被纳入到Spring Bean容器中并进行管理。 Autowired Autowired用于自动装配…

Java实现业务异步的几种方案

背景&#xff1a; 在java中异步线程很重要&#xff0c;比如在业务流处理时&#xff0c;需要通知硬件设备&#xff0c;发短信通知用户&#xff0c;或者需要上传一些图片资源到其他服务器这种耗时的操作&#xff0c;在主线程里处理会阻塞整理流程&#xff0c;而且我们也不需要等…

百度发布全新 AI 互动式搜索:百度简单搜索

本心、输入输出、结果 文章目录 百度发布全新 AI 互动式搜索&#xff1a;百度简单搜索前言主要能力 相关资料能力介绍 百度搜索升级发文告用户如何获取百度简单搜索百度简单搜索的定位百度简单搜索在 APP 上面的体验讨论和点评我们关注的几个问题 弘扬爱国精神 百度发布全新 AI…

【yolov8目标检测】使用yolov8训练自己的数据集

目录 准备数据集 python安装yolov8 配置yaml 从0开始训练 从预训练模型开始训练 准备数据集 首先得准备好数据集&#xff0c;你的数据集至少包含images和labels&#xff0c;严格来说你的images应该包含训练集train、验证集val和测试集test&#xff0c;不过为了简单说…

安防视频监控平台EasyCVR出现视频流播放卡顿情况,如何优化?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能/大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼…

A062-防火墙安全配置-配置Iptables防火墙策略

实验步骤: 【教学资源类别】 序号 类别 打勾√ 1 学习资源 √ 2 单兵模式赛题资源 3 分组对抗赛题资源 【教学资源名称】 防火墙安全配置-配置安全设置iptables防火墙策略 【教学资源分类】 一级大类 二级大类 打勾√ 1.安全标准 法律法规 行业标准 安全…

离线语音与IoT结合:智能家居发展新增长点

离线语音控制和物联网&#xff08;IoT&#xff09;相结合在家居中具有广泛的应用和许多优势。离线语音控制是指在设备在本地进行语音识别和处理&#xff0c;而不需要依赖云服务器进行处理。IoT是指借助网络&#xff0c;通过手机APP、小程序远程控制家居设备。 启英泰伦基于AI语…

WLAN 无线案例(华为AC控制器配置模板)

实验说明&#xff1a; 无线用户VLAN 30 192.168.30.0/24 AP和AC用VLAN 20 192.168.20.0/24 有线网段 VLAN 10 192.168.10.0/24 步骤一&#xff1a;全网互通 sw1&#xff1a; sysname sw1 # vlan batch 10 20 30 # dhcp enable # ip pool 20 gateway-list 192.168.20.1…

React合成事件

一、合成事件 event 是 SyntheticEvent &#xff0c;模拟出来 DOM 事件所有能力 event.nativeEvent 是原生事件对象 所有的事件&#xff0c;都被挂载到 document 上&#xff08;React ≤ 16&#xff09;&#xff0c;React17之后是挂载到root组件 和 DOM 事件不一样&#xff…

Defects4j数据集安装及使用

0、常见问题 1. 所有配置完成后运行defects4j info -p Lang测试出现错误 Cant locate DBI.pm in INC (you may need to install the DBI module) (INC contains: /myproject/defects4j/framework/lib /myproject/defects4j/framework /myproject/defects4j/framework/core /m…

【计算机网络笔记】计算机网络性能(1)——速率、带宽、延迟

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 系列文章目录速率带宽延迟/时延(delay或latency) 下面介绍一些计算机网络中常用的性能指标。在本篇中涉及速…

创建React Native的第一个hello world工程

创建React Native的第一个hello world工程 需要安装好node、npm环境 如果之前没有安装过react-native-cli脚手架的&#xff0c;可以按照下述步骤直接安装。如果已经安装过的&#xff0c;但是在使用这个脚手架初始化工程的时候遇到下述报错的话 cli.init(root, projectname);…

WordPress导航主题蘑菇导航源码

蘑菇导航的列表页有两种风格&#xff0c;分别对应宽屏、窄屏。可以点击 文章。博客查看演示。文章页也是如此&#xff0c;这两种风格可以在后台设置。 本站菜单中的 VIP解析、音乐、图床&#xff0c;是单独的源码&#xff0c;不包含在本次主题中。后期看大家的要求&#xff0c…

SSH连接华为交换机慢

ssh连接交换机慢是因为交换计算密钥算法阶段默认使用安全性更高的秘钥&#xff0c;由于性能问题导致连接比较慢&#xff0c;如一台华为S5735S-L24T4S-QA2的交换机默认使用如下秘钥&#xff0c;安全行由高到低。 ssh server key-exchange dh_group16_sha512 dh_group15_sha512 …

【Release】Photoshop ICO file format plug-in 3.0

【Introduction】 The Photoshop ICO plug-in is a file format plug-in developed for Photoshop, which allows Photoshop to directly read and write ICO format files. Because Photoshop has powerful pixel bitmap editing functions, it has many users and a good us…

企业如何自定义人力资源和财务报表?

企业自定义人力资源和财务报表是一种重要的能力&#xff0c;它允许企业根据其特定需求和目标创建和定制报表。以下是一些详细的步骤和说明&#xff0c;帮助企业实现人力资源和财务报表的自定义。 1. 确定报表需求&#xff1a; 首先&#xff0c;企业需要明确自己对人力资源和财…

uniapp(uncloud) 使用生态开发接口详情5(云公共模块)

1.uniCloud官网 云对象中云公共模块: 网站: https://uniapp.dcloud.net.cn/uniCloud/cf-common.html // 官网介绍 cloudfunctions├─common // 云函数公用模块目录| └─hello-common // 云函数公用模块| ├─package.json| └─index.js // 公用模块代码&#xff0…

docker拉取镜像错误missing signature key

参考地址&#xff1a;docker拉取镜像错误 missing signature key-CSDN博客 linux系统&#xff0c;使用docker拉取的时候&#xff0c;报错如下 missing signature key 就一阵莫名其妙&#xff0c;之前还好好的&#xff0c;突然就不行了 按照网上说的方法&#xff0c;查看doc…

计算机网络-计算机网络体系结构-网络层

目录 一、IPV4 IP数据报格式 *IP 数据报分片 *IPV4地址 分类 网络地址转换(NAT) 二、子网划分与子网掩码 *CIDR *超网 协议 ARP协议 DHCP协议 ICMP协议 三、IPV6 格式 IPV4和IPV6区别 地址表示形式 四、路由选择协议 RIP(路由信息协议) OPSF(开发最短路径优…