LeetCode 面试题 17.19. 消失的两个数字

embedded/2025/3/4 18:22:05/

LeetCode 面试题 17.19. 消失的两个数字

image-20250303192344510

思路🧐:

  运用位运算,我们先创建一个变量tmp,依次异或nums和1~N所有整数,此时就可以得到两个数的异或值。

  然后通过右移操作,逐位检查tmp中的每一位,找到第一个为1的位,用diff变量存储起来,表示两个数字的该位是不同的(一个为0,一个为1,异或以后必定为1)。

  由此我们可以分组,diff位为1的为一组,diff位为0的为一组,分别对这两组数字与nums进行异或操作,得到两个的数字。再将这两个数字与1~N异或起来,而nums中的数字一定会出现两次,则相同数字异或结果为0,最后就可以得到两个缺失的数字。

Pasted image 20250303105256

代码🔎:

class Solution {
public:vector<int> missingTwo(vector<int>& nums) {int tmp = 0;for(auto e : nums) tmp ^= e;for(int i = 1; i <= nums.size() + 2; i++)    tmp ^= i; //得到缺失数字的异或int diff = 0; //找到不同位while(1){if(((tmp >> diff) & 1) == 1) //如果该位为1,表示一个为0,一个为1,由此分组break;diff++;}int a = 0, b = 0; //由diff位是0是1进行分组for(auto e : nums)if(((e >> diff) & 1) == 1) a ^= e; // 该位为1,分到a组else b ^= e; //否则b组for(int i = 1; i <= nums.size() + 2; i++) // 与1~N所有数异或,也需要分组,不过此时相同的数异或为0,按照分组,最后得到两个缺失的数if(((i >> diff) & 1) == 1) a ^= i; // 该位为1,分到a组else b ^= i; //否则b组return {a,b};}
};

image-20250303193551997


http://www.ppmy.cn/embedded/169983.html

相关文章

DeepSeek 开源狂欢周(五)正式收官|3FS并行文件系统榨干SSD

千呼万唤始出来&#xff01;在 DeepSeek 开源周 的第五天&#xff0c;今日正式收官&#xff01;在大模型训练中&#xff0c;每个epoch都在与存储系统进行光速竞赛——数据加载延迟会扭曲计算时空&#xff0c;KVCache访问瓶颈将引发推理坍缩。DeepSeek开源的 3FS文件系统&#x…

20.<Spring图书管理系统①(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

影刀RPA开发拓展--SQL常用语句全攻略

前言 SQL&#xff08;结构化查询语言&#xff09;是数据库管理和操作的核心工具&#xff0c;无论是初学者还是经验丰富的数据库管理员&#xff0c;掌握常用的 SQL 语句对于高效管理和查询数据都至关重要。本文将系统性地介绍最常用的 SQL 语句&#xff0c;并为每个语句提供详细…

聊聊学习之数据-信息-知识-洞见-智慧-影响力

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数据-信息-知识-洞见-智慧-影响力的关系1.数据2.信息3.知识4.洞察5.智慧6.影响力 二、具体例子1.数据2.信息3.知识4,洞察5.智慧6.影响力 结语 前言 之前见…

51页精品PPT | 农产品区块链溯源信息化平台整体解决方案

PPT展示了一个基于区块链技术的农产品溯源信息化平台的整体解决方案。它从建设背景和需求分析出发&#xff0c;强调了农产品质量安全溯源的重要性以及国际国内的相关政策要求&#xff0c;指出了食品安全问题在流通环节中的根源。方案提出了全面感知、责任到人、定期考核和追溯反…

从零开始构建高效Spring Boot应用:实战案例与最佳实践

摘要 本文旨在为初学者及有一定基础的开发者提供一份详尽的指南&#xff0c;以帮助大家深入理解并掌握如何使用Spring Boot框架来快速开发企业级应用程序。通过实际案例分析、代码示例以及架构设计思路分享&#xff0c;读者不仅能够学习到理论知识&#xff0c;还能获得宝贵的实…

SpringCloud系列教程(十一):token验证

之前我们完成了gateway传递token到微服务中&#xff0c;但是这还不够&#xff0c;因为有时候我们微服务是一个调用链路&#xff0c;每个微服务的请求可以来自于网关也可以来自于其他微服务&#xff0c;我们只完成了gateway传递token&#xff0c;还没有完成微服务之间使用openfe…

5G学习笔记之BWP

我们只会经历一种人生&#xff0c;我们选择的人生。 参考&#xff1a;《5G NR标准》、《5G无线系统指南:如微见著&#xff0c;赋能数字化时代》 目录 1. 概述2. BWP频域位置3. 初始与专用BWP4. 默认BWP5. 切换BWP 1. 概述 在LTE的设计中&#xff0c;默认所有终端均能处理最大2…