每日一题——丢失的数字

news2024/11/15 8:20:34

丢失的数字

题目链接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R4eCs2eH-1690690393591)(C:/Users/HUASHUO/AppData/Roaming/Typora/typora-user-images/image-20230730120355497.png)]

注:这一题的解法建立在位运算——异或^的基础之上,如果位运算和异或操作符不太了解,建议先看看:

位运算详解

只出现一次的数字


思路

同样,这题要求时间复杂度为O(n),空间复杂度为O(1)

可能有小伙伴做了找到消失的数字后,也觉得这题也可以用同样的方法,通过改变对应下标的元素来找到丢失的数字。但是我们应该清楚两题的不同点:

  1. 《找到消失的数字》数组的长度为n,数据范围也只有n个数;《丢失的数字》数组长度为n,但数据范围却有n + 1个数
  2. 由于上面的不同,《找到消失的数字》可以通过数据绝对值-1的方法来确定一个唯一的下标进行修改,从而达到目标;而《丢失的数字》无法通过数组数据来确定一个唯一的下标
  3. 《找到消失的数字》数组中的元素可以重复;《丢失的数字》数组中的元素独一无二

这一题,我们同样利用异或的特性解决问题

异或的特性:

异或是支持交换律的:a ^ b ^ c = b ^ a ^ c

a ^ a = 0相同的数异或为0

0 ^ a = a一个数和0异或得到的还是本身

由于数组元素范围都在[0,n]但少了[0,n]的一个数,那么我们就可以将[0,n]的每一个数异或到一起,再将这个结果和数组中的每个元素异或到一起,那么最后得到的就是这个丢失的数字。

实现代码

int missingNumber(int* nums, int numsSize){
    int ret = 0;	//设置返回值
    
    //将数组的每个元素异或到一起
    for(int i = 0; i < numsSize; i++)
        ret ^= nums[i];
    
    //将[0,n]的每个数据异或到一起
    for(int i = 0; i <= numsSize; i++)
        ret ^= i;
    
    return ret;
}

可能又有小伙伴回想为什么找到消失的数字不能用异或法,这是因为**《找到消失的数字》数组中的数据可以重复,这就导致了消失的数字就不止一个,而用异或只能确定一个数字,**因此异或法就行不通了。

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

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

相关文章

二叉树中的深搜

一)计算布尔二叉树的值 2331. 计算布尔二叉树的值 - 力扣&#xff08;LeetCode&#xff09; 1)计算布尔二叉树需要从叶子节点向上进行计算&#xff0c;从下向上进行计算 2)完整二叉树是同时拥有左孩子和右孩子&#xff0c;或者是完全没有右孩子 3)当我只是盯着根节点来看的时候…

JSON Web 令牌 (JWT)攻击

一、什么是JSON Web 令牌 &#xff08;JWT&#xff09; JSON Web令牌&#xff08;JWT&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络应用间传递声明信息。它是一种轻量级、自包含的安全性传输格式&#xff0c;通常用于在身份验证和授权过程…

三更博客系统(完整笔记+前后台系统代码实现)

三更博客前后端分离系统 前后端分离博客系统1.技术栈2.创建工程3.博客前台3.0 准备工作3.1 SpringBoot和MybatisPuls整合配置测试 3.1 热门文章列表3.1.0 文章表分析3.1.1 需求3.1.2 接口设计3.1.3 基础版本代码实现3.1.4 使用VO优化3.1.5 字面值处理 3.2 Bean拷贝工具类封装3.…

C#百万数据处理

C#百万数据处理 在我们经验的不断增长中不可避免的会遇到一些数据量很大操作也复杂的业务 这种情况我们如何取优化如何去处理呢&#xff1f;一般都要根据业务逻辑和背景去进行合理的改进。 文章目录 C#百万数据处理前言一、项目业务需求和开发背景项目开发背景数据量计算业务需…

OpenFeign原理浅析

OpenFeign原理我个人觉得是非常简单的&#xff0c;如果你对Spring非常了解&#xff0c;知道FactoryBean&#xff0c;以及注入bean的方式&#xff0c;并掌握动态代理&#xff0c;那么自己实现一个类似这样的Http代理客户端是一点问题也没有的&#xff01; 使用流程 首先我们先过…

BLE连接、配对和绑定

参考&#xff1a;一篇文章带你解读蓝牙配对绑定 参考&#xff1a;BLE安全之SM剖析(1) 参考&#xff1a;BLE安全之SM剖析&#xff08;2&#xff09; 参考&#xff1a;BLE安全之SM剖析(3) 参考&#xff1a;https://blog.csdn.net/chengbaojin/article/details/103691046 参考&…

【MQTT5】原生PHP对接Uni H5、APP、微信小程序实时通讯消息服务

文章目录 视频演示效果前言一、分析二、全局注入MQTT连接1.引入库2.写入全局连接代码 二、PHP环境建立总结 视频演示效果 【uniapp】实现买定离手小游戏 前言 Mqtt不同环境问题太多&#xff0c;新手可以看下 《【MQTT】Esp32数据上传采集&#xff1a;最新mqtt插件&#xff08;支…

Flowable-服务-骆驼任务

目录 定义图形标记XML内容Flowable与Camel集成使用示例设计Came路由代码 定义 Camel 任务不是 BPMN 2.0 规范定义的官方任务&#xff0c;在 Flowable 中&#xff0c;Camel 任务是作为一种特殊的服务 任务来实现的。主要做路由工作的。 图形标记 由于 Camel 任务不是 BPMN 2.…

BMI指数计算小工具Java

现在越来越多的人关注健康&#xff0c;关注身材管理&#xff0c;不妨做个小工具&#xff0c;计算自己的BMI&#xff0c;给自己制定合理的健身或减肥计划&#xff0c;享受健康生活&#xff01;&#xff01;&#xff01;BMI的计算标准从网上找的&#xff0c;不知道是否准确&#…

❤ yarn 和npm 的使用

❤ yarn 和npm 的使用 yarn 版本1的使用 yarn 简介 Yarn是facebook发布的一款取代npm的包管理工具。 yarn特点&#xff1a; 1&#xff0c;速度超快。 Yarn 缓存了每个下载过的包&#xff0c;所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率&#xff0c;因…

TransGPT 开源交通大模型开源

TransGPT 是开源交通大模型&#xff0c;主要致力于在真实交通行业中发挥实际价值。 它能够实现交通情况预测、智能咨询助手、公共交通服务、交通规划设计、交通安全教育、协助管理、交通事故报告和分析、自动驾驶辅助系统等功能。 TransGPT 作为一个通用常识交通大模型&#…

cmd相关操作命令

1.根据端口号查询对应进程的PID netstat -ano | findstr 端口号 例如&#xff1a;netstat -ano | findstr 9080&#xff1b;该端口所属进程的PID为6684 2.根据PID查询对应进程 tasklist | findstr PID 例如&#xff1a;tasklist | findstr 6684&#xff1b;该PID所属进程名为…

啥都收费,不仅智能电视没人买了,连电视盒子也卖不出了

分析机构给出的数据指今年上半年国内的电视盒子销量跌破百万至92.9万台&#xff0c;同比下滑29%&#xff0c;享受额更是大跌32%&#xff0c;显示出电视盒子即使大幅降价也没人买了&#xff0c;导致消费者远离电视在于收费太离谱了。 一、啥都收费 如今的智能电视其实并不智能&a…

使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Day48 算法记录|动态规划15 (子序列)

子序列 392. 判断子序列115.不同的子序列 392. 判断子序列 这道题和1143最长公共字串相同 dp[i][j] 表示以下标i-1为结尾的字符串s&#xff0c;和以下标j-1为结尾的字符串t&#xff0c;相同子序列的长度为dp[i][j]。 class Solution {public boolean isSubsequence(String s,…

【C语言初阶篇】自定义类型结构体我不允许还有人不会!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言1 . 什么是结构体1.1 结构的定义1.2 结构的声明 2.结构体初始化2.1 用标签名定义和初始化2.2…

【Vue】Vue-Cli整合Echart

Vue-Cli整合Echart 文章目录 Vue-Cli整合Echart一、创建Vue-Cli项目1、创建并运行Vue Cli hello-world项目2、运行vue-element-admin项目 二、Vue-Cli整合Echart1、使用echarts CDN源实现K线图绘制2、使用VueCli echarts实现K线图绘制3、echart更多使用问题整理 一、创建Vue-C…

LeetCode222. 完全二叉树的节点个数

222. 完全二叉树的节点个数 文章目录 [222. 完全二叉树的节点个数](https://leetcode.cn/problems/count-complete-tree-nodes/)一、题目二、题解方法一&#xff1a;递归遍历所有结点方法二&#xff1a;根据完全二叉树的特性递归方法三&#xff1a;迭代 一、题目 给你一棵 完全…

[C语言] 数组

1. 一维数组的创建和初始化 2. 一维数组的使用 3. 一维数组在内存中的存储 4. 二维数组的创建和初始化 5. 二维数组的使用 6. 二维数组在内存中的存储 7. 数组越界 8. 数组作为函数参数 9. 数组的应用实例 1 &#xff1a;三子棋 10. 数组的应用实例 2 &#…

初阶数据结构——二叉树题目

文章目录 一、单值二叉树二、检查两颗树是否相同三、另一棵树的子树四、二叉树的前序遍历五、对称二叉树 一、单值二叉树 单值二叉树 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff…