LeetCode 只出现一次的数字 合集

一:只有一个元素出现一次,其他出现两次

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

思路: 利用异或性质,即 a ^ b ^ a = b;

class Solution {
public:int singleNumber(vector<int>& nums) {int res = 0;for(int& i : nums) {res ^= i;}return res;}
};

二: 只有一个元素出现一次,其他元素出现三次

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

思路: 一个数的二进制无非就是 0 或者 1, 既然除了目标数外,其他数都有三个, 那么该二进制第 i 位和 对3取余 即为 目标数的第 i 位 

class Solution {
public:int singleNumber(vector<int>& nums) {int res = 0;for(int i = 0; i < 32; i++) {int sum = 0;for(auto& num : nums) {sum += ((num >> i) & 1);}if(sum % 3) {res |= (1 << i);}}return res;}
};

三:两个数出现一次,其他数都出现两次 

给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。

 思路: 利用异或性质,假设两个目标数为 a 和 b,那么将所有数异或后, 得到 a ^ b

因为 a 与 b 不相等, 那么a 与 b 的二进制中必然有一位不同, 即 一个为 1 ,另一个为 0,

那么我们就可以根据该位进行分组

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {int xorsum = 0;for(int& num : nums) {xorsum ^= num;}int a = 0, b = 0;int lowbit = (xorsum == INT_MIN ? xorsum : xorsum & (-xorsum));for(int& num : nums) {if(lowbit & num) {a ^= num;}else {b ^= num;}}return {a, b};}
};

 

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

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

相关文章

Java关键字 —— super 详细解释!一看就懂 有代码实例运行!

super在父类、子类相关联的操作中经常被用到 super 是Java中的关键字&#xff0c;用于引用父类&#xff08;超类&#xff09;的成员变量、方法或构造函数。它有以下主要用途&#xff1a; 访问父类中的成员变量调用父类中的构造方法调用父类中的方法 在没有继承和被继承关系的类…

(九)类特殊成员(属性和方法)

Python 类中&#xff0c;凡是以双下划线 "__" 开头和结尾命名的成员&#xff08;属性和方法&#xff09;&#xff0c;都被称为类的特殊成员&#xff08;特殊属性和特殊方法&#xff09;。例如&#xff0c;类的 __init__(self) 构造方法就是典型的特殊方法。 Python …

Macos数据库管理:Navicat Premium 中文

Navicat Premium提供了直观且易用的图形用户界面&#xff0c;使得操作更为便捷。Navicat Premium 中文支持多种数据库系统&#xff0c;如MySQL、MariaDB、Oracle、SQLite、PostgreSQL等&#xff0c;可以让用户在同一平台上管理不同类型的数据库。Navicat Premium拥有强大的数据…

Oracle 运维篇+应用容器数据库的install、upgrade、patch、uninstall

★ 知识点 ※ DEFAULT_SHARING参数的取值 METADATA: 元数据链接共享数据库对象的元数据&#xff0c;但其数据对于每个容器是唯一的。这些数据库对象被称为元数据链接的应用程序公共对象。此设置为默认设置。DATA: 数据链接共享数据库对象&#xff0c;其数据对于应用程序容器中…

医疗实施-闭环管理

闭环管理 1.闭环管理概念2.医院闭环的种类2.1 患者追踪闭环2.1.1住院追踪闭环2.1.2门诊追踪闭环 2.2 药品医嘱闭环2.2.1 住院药品医嘱闭环2.2.2 门诊药品医嘱闭环 2.3 检验医嘱闭环2.3.1住院检验闭环2.3.2门诊检验闭环 2.4检查医嘱闭环2.4.1住院检查闭环2.4.2门诊检查闭环 2.5手…

elasticsearch常用命令

Elasticsearch概念 ElasticsearchmysqlIndex(索引)数据库Type(类型)表Documents(文档)行Fields列 常用命令 索引 # 索引初始化&#xff0c;number_of_shards:分片数&#xff0c;不可修改&#xff1b;number_of_replicas:副本数&#xff0c;可修改 PUT lagou {"settings…

关于代理服务器那点事

问题:我们有时候会遇到,后端再本地服务器开发,不是测试服上,这时候我们就需要代码几个baseurl 答:一个axios只能代理一个baseurl axios 库本身只能代理一个 baseURL。在一个 axios 实例中,只能指定一个基准 URL 来发送请求。如果需要在应用程序中使用多个不同的 baseUR…

Discuz户外旅游|旅行游记模板/Discuz!旅行社、旅游行业门户网站模板

价值328的discuz户外旅游|旅行游记模板&#xff0c;本模板需要配套【仁天际-PC模板管理】插件使用。 模板说明 1、模板页面宽度1200px&#xff0c;简洁大气&#xff0c;较适合户外旅行、骑行、游记、摩旅、旅游、活动等类型的论坛、频道网站&#xff1b; 2、所优化的页面有&…

优雅而高效的JavaScript——Proxy 和 Reflect

&#x1f914;博主&#xff1a;小猫娃来啦 文章核心&#xff1a;优雅而高效的JavaScript——Proxy 和 Reflect 文章目录 Proxy 和 Reflect是什么Proxy创建 Proxy 对象拦截器方法拦截器示例&#xff1a;属性拦截拦截器示例&#xff1a;方法拦截 ReflectReflect 的静态方法Reflec…

ESP32单片机环境搭建(VScode + PlatformIO IDE)

一、环境搭建&#xff08;VScode PlatformIO IDE&#xff09; 1、官网下载VScode; 2、安装最新的插件&#xff08;C/C、PlatformIO IDE、python、Chinese&#xff09;&#xff1b; 3、在PlatformIO IDE中新建工程&#xff1a;Platforms——Projects——Create New Project——…

软考 系统架构设计师系列知识点之基于架构的软件开发方法ABSD(6)

接前一篇文章&#xff1a; 所属章节&#xff1a; 第7章. 系统架构设计基础知识 第5节. 特定领域软件体系结构 相关试题 1. 基于架构的软件设计&#xff08;ABSD&#xff09;强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD方法有三个基础&#xff1a;功能分解、&…

P2251 质量检测

题目&#xff1a; P2251 质量检测 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码&#xff1a; #include<iostream> #include<cstdio> #include<deque> #include<vector> typedef long long ll; const ll N 1e7; using namespace std;int main…

vscode - 环境准备 - 修改缓存路径

说明 在window上使用vscode&#xff0c;其默认的缓存&#xff08;包含代码缓存&#xff0c;插件等&#xff09;存储路径是在c盘&#xff0c;即使将vscode安装在其它磁盘。频繁使用vscode&#xff0c;vscode会占用C盘大量磁盘空间&#xff0c;C盘空间不充裕&#xff0c;会被vsc…

babili-webpack-plugin编译后的代码v+‘‘===1,会被压缩成字符串v1

同问题&#xff1a;https://github.com/babel/minify/issues/1021 然后翻了下源码 使用了 babel-preset-babili, 继续往下找发现它又使用了babel插件:babel-plugin-minify-constant-folding 这个插件主要功能是将javascript代码中无用的常量、表达式、函数等内容进行折叠并优…

SPI 接口 CAN协议控制器 MCP2515/DP2515国产替代芯片DPC15

can控制器是CAN局域网控制器的简称&#xff0c;为解决现代汽车中众多测量控制部件之间的数据交换而开发的一种串行数据通信总线。 CAN 可提供高达1Mbit/s的数据传输速率&#xff0c;这使实时控制变得非常容易。另外&#xff0c;硬件的错误检定特性也增强了CAN的抗电磁干扰能力…

[MQ]Win平台RocketMQ安装启动

1、下载 官网下载地址&#xff1a;https://rocketmq.apache.org/zh/download 2、解压ZIP包 解压rocketmq-all-x.x.x-bin-release.zip到目录。 比如我解压到了E:\Env\MQ_rocket\rocketmq-all-5.1.4-bin-release 3、配置环境变量 ROCKETMQ_HOME 4、RocketMQ JVM内存配置 这个需要…

架构案例2017(五十二)

第5题 阅读以下关于Web系统架构设计的叙述&#xff0c;在答题纸上回答问题1至问题3.【说明】某电子商务企业因发展良好&#xff0c;客户量逐步增大&#xff0c;企业业务不断扩充&#xff0c;导致其原有的B2C商品交易平台己不能满足现有业务需求。因此&#xff0c;该企业委托某…

上网冲浪发现多处XSS

突然的发现 今天上网冲浪&#xff0c;突然想起来有一种神器&#xff0c;叫废话生成器&#xff0c;之前是在哪里下了个软件玩了一下&#xff0c;然后就给删除了&#xff0c;因为我觉得这个软件不过就是调用了一个web接口实现的&#xff0c;一个网页能解决的事还要我下一个软件。…

麒麟系统 部署 kubernetes v1.18.5

1. 背景 手工部署 Kubernetes 二进制集群相对于使用自动化工具或发行版进行部署有一些优势&#xff1a; 定制性&#xff1a;手工部署允许您对 Kubernetes 集群的各个组件进行定制。您可以选择特定的版本、配置选项和插件&#xff0c;以满足您的需求。这种灵活性使您能够根据具…

系列八、Redis的事务

一、是什么 可以一次执行多个命令&#xff0c;本质是一组命令的集合。一个事务中的所有命令都会序列化&#xff0c;按顺序地串行化执行而不会被其他命令插入&#xff0c;不允许加塞。 二、能干嘛 一个队列中&#xff0c;一次性、顺序性、排他性的执行一些列命令。 三、怎么玩…