LeetCode刷题只出现一次的数字

news/2024/3/29 3:23:07/文章来源:https://blog.csdn.net/weixin_46167190/article/details/129235599

LeetCode刷题只出现一次的数字

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

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

示例一:

输入:nums = [2,2,1]
输出:1

示例二:

输入:nums = [4,1,2,1,2]
输出:4

示例三:

输入:nums = [1]
输出:1

算法思路一:

使用集合Set解决
这个应该是最容易想到的,我们遍历数组中的元素,然后在一个个添加到集合Set中,如果添加失败,说明以前添加过,就把他给移除掉。当我们把数组中的所有元素都遍历完的时候,集合Set中只会有一个元素,这个就是我们要求的值。

class Solution {public int singleNumber(int[] nums) {//创建set集合Set<Integer> set = new HashSet<Integer>();//遍历数组添加元素for(int i=0;i<nums.length;i++){if(!set.add(nums[i])){set.remove(nums[i]);}}//返回最后一个集合return (int) set.toArray()[0];}
}

算法思路二

1,位运算解决
使用位运算的思路进行解决问题,需要多逻辑运算的基本规律有一定的了解。

这题说的是只有一个数出现了一次,其他数字都出现了2次,让我们求这个只出现一次的数字。这题使用位运算是最容易解决的,关于位运算有下面几个规律

1^1=0;

1^0=1;

0^1=1;

0^0=0;

也就说0和1异或的时候相同的异或结果为0,不同的异或结果为1,根据上面的规律我们得到

a^a=0;自己和自己异或等于0

a^0=a;任何数字和0异或还等于他自己

abc=acb;异或运算具有交换律

class Solution {public int singleNumber(int nums[]) {int result = 0;for (int i = 0; i < nums.length; i++){result = result^nums[i];}return result;}
}

采用位运算的算法通过率更高

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

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

相关文章

Linux基础命令-stat显示文件的状态信息

文章目录 stat 命令介绍 语法格式 基本参数 测试三个时间的变化过程 1&#xff09;使用cat命令 2&#xff09;使用echo命令 3&#xff09;使用chmod命令 4&#xff09;使用vim命令 参考实例 1&#xff09;显示文件的状态信息 2&#xff09;以简洁的形式显示状态信…

【论文速递】COLING 2022 - 带有事件论元相关性的事件因果关系抽取

【论文速递】COLING 2022 - 带有事件论元相关性的事件因果关系抽取 【论文原文】&#xff1a;Event Causality Extraction with Event Argument Correlations 【作者信息】&#xff1a;Cui, Shiyao and Sheng, Jiawei and Cong, Xin and Li, Quangang and Liu, Tingwen and S…

Delphi 中 FireDAC 数据库连接(总览)

本系列包含一组文章&#xff0c;描述了如何用在Delphi中使用FireDAC设置数据库驱动和管理数据库连接。通过这一些列文章的学习&#xff0c;将熟练掌握FireDAC数据库连接管理应用。自由使用FireDAC&#xff01;主题说明定义连接描述了如何存储和使用FireDAC连接参数以及连接定义…

ROS进行深度相机的标定

前言 自己使用标定板对深度相机进行标定。 参考&#xff1a;http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration 一、准备标定板 在下面的网站中可下载棋盘格标定板&#xff0c;可用A4纸打印下来。 http://wiki.ros.org/camera_calibration/Tutorials/…

【华为OD机试模拟题】用 C++ 实现 - 单词倒序(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 去重求和(2023.Q1) 文章目录 最近更新的博客使用说明单词倒序 【华为OD机试模拟题】题目输入输出描述备注示例一输入输出示例二输入输出思路Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿…

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

SVG实例详解系列&#xff08;一&#xff09; (svg概述、位图和矢量图区别&#xff08;图解&#xff09;、SVG应用实例&#xff09; 目录 一、什么是SVG? &#xff08;1&#xff09;、位图和矢量图概念&#xff08;图解&#xff09; &#xff08;2&#xff09;、SVG的小例子…

为什么我会选择 AI-TestOps 让测试更智能

catalogue写在前面背景纵观AI-TestOps云平台进入平台自动化测试主流程AI视频流程图写在前面 如今在IT行业中的测试岗位尤为重要&#xff0c;可谓是生产环境的最后一道防线&#xff0c;我们的愿景都是测试点头后绝无BUG&#xff0c;可见测试工程师在项目中的重要程度&#xff0…

正态分布、Q函数、误差函数erf()和互补误差函数erfc()

1、正态分布&#xff08;高斯分布&#xff09; 若随机变量 X服从一个位置参数为 μ、尺度参数为 σ 的概率分布&#xff0c;且其概率密度函数为 则这个随机变量就称为正态随机变量&#xff0c;正态随机变量服从的分布就称为正态分布&#xff0c;记作 X∼N(μ,σ2) 。 当μ0,σ…

QML Item

在QML中所有的可视项目都继承自Item&#xff0c;虽然Item本身没有可视化的外观&#xff0c;但它定义了可视化项目的所有属性。 Item可以作为容器使用&#xff1a; Item{Rectangle{id:retc}Rectangle{id:retc1}Rectangle{id:retc2}Rectangle{id:retc3}} item拥有children属性…

【C语言每日一题】杨氏矩阵(源码以及改进源码)

【C语言每日一题】—— 杨氏矩阵&#x1f60e;&#x1f60e;&#x1f60e; 目录 &#x1f4a1;前言&#x1f31e;&#xff1a; &#x1f49b;杨氏矩阵题目&#x1f49b; &#x1f4aa; 解题思路的分享&#x1f4aa; &#x1f60a;题目源码的分享&#x1f60a; &#x1f4…

SSM知识快速复习

SSM知识快速复习SpringIOCDIIOC容器在Spring中的实现常用注解Autowired注解的原理AOP相关术语作用动态代理实现原理事务Transactional事务属性&#xff1a;只读事务属性&#xff1a;超时事务属性&#xff1a;回滚策略事务属性&#xff1a;事务隔离级别事务属性&#xff1a;事务…

Windows下载安装Prometheus

目录 资料 下载 解压 点击prometheus.exe运行 资料 Prometheus是一个开源的系统监控和报警系统&#xff0c;同时也支持多种exporter采集数据&#xff0c;还支持pushgateway进行数据上报&#xff0c;Prometheus性能足够支撑上万台规模的集群。 官网&#xff1a;https://pr…

阿里大数据之路总结

一、数据采集 二、数据同步 2.1、数据同步方式&#xff1a; 数据同步的三种方式&#xff1a;直连方式、数据文件同步、数据库日志解析方式 关系型数据库的结构化数据&#xff1a;MYSQL、Oracle、DB2、SQL Server非关系型数据库的非结构化数据&#xff08;数据库表形式存储&am…

【ESP 保姆级教程】疯狂毕设篇 —— 案例:基于ESP8266和EMQX的教室灯光控制系统

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-02-26 ❤️❤️ 本篇更新记录 2022-02-26 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…

智慧物联网源码带手机端源码 物联网系统源码

在智慧工厂领域&#xff0c;智慧城市领域&#xff0c;都需要对设备进行监控。比如工厂需要对周围环境温度、湿度、气压、电压&#xff0c;灯的开关进行监控。这时候就需要物联网平台来进行管理。 推荐一个基于java开发的物联网平台&#xff0c;前端HTML带云组态、可接入视频监…

酷炫的数据可视化,背后的制作工具究竟是什么?

数据可视化已经成为当代互联网的热词&#xff0c;不论是哪个行业都在使用。那么背后制作出数据可视化的可视化工具是什么呢&#xff1f;它又有哪些呢&#xff1f; 一、可视化工具是什么 可视化工具其实是 Visual Studio 调试器用户界面的组件&#xff0c;听起来很复杂对吧。但…

图节点嵌入相关算法学习笔记

引言 本篇笔记为coggle 2月打卡任务&#xff0c;正好也在学习cs224w&#xff0c;干脆就一起做了&#xff0c;以下是任务列表&#xff1a; 任务名称难度任务1&#xff1a;图属性与图构造低、1任务2&#xff1a;图查询与遍历低、2任务3&#xff1a;节点中心性与应用中、2任务4&…

redis(10)事务和锁机制

Redis事务定义 Redis 事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 Redis 事务的主要作用就是串联多个命令防止别的命令插队。 Multi、Exec、discard Redis 事务中…

15 Nacos客户端实例注册源码分析

Nacos客户端实例注册源码分析 实例客户端注册入口 流程图&#xff1a; 实际上我们在真实的生产环境中&#xff0c;我们要让某一个服务注册到Nacos中&#xff0c;我们首先要引入一个依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId>&l…

idea debug elasticsearch8.6.2 源码

前置依赖&#xff1a; gradle 7.5.1&#xff1a;Gradle | Releases openJDK 17&#xff1a;https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe idea&#xff1a;IntelliJ IDEA 2022.1 (Ultimate Edition) 1、下载源码 8.6.2 zip包 并解压 地址&…