LeetCode如何查出只出现一次的数
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章将为大家详细讲解有关LeetCode如何查出只出现一次的数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1题目描述给定一个非空整数数组,只有一个数字出现一次
千家信息网最后更新 2025年02月04日LeetCode如何查出只出现一次的数思路一 : 建立哈希表记录每个值出现的次数 思路二 : 集合差值 思路三 : 异或运算(位运算)
这篇文章将为大家详细讲解有关LeetCode如何查出只出现一次的数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1
题目描述
给定一个非空整数数组,只有一个数字出现一次,其余出现两次,找出只出现一次的数字。如输入[3,4,5,4,3],输出5。
2
知识点
前两天刷题都是建立哈希表,思维惯性第一反应又是这个。遍历每个值,建立字典记录出现次数,返回出现次数为1的值即可。
class Solution: def singleNumber(self, nums: List[int]) -> int: countnum=dict() for i in nums: if i in countnum: countnum[i]=countnum[i]+1 else: countnum[i]=1 for e,v in countnum.items(): if v == 1: return e
python中set表示无序不重复集合,对集合可直接求差值,得到两个集合中不同的值。
class Solution: def singleNumber(self, nums: List[int]) -> int: nums.sort() return list(set(nums[::2]) - set(nums[1::2]))[0]
看其他人解题思路看到的方法。异或运算规则是:如果a、b两个值不相同,则结果为1;如果a、b两个值相同,结果为0。计算机中用二进制进行存储,所以[3,5,3]通过异或有如下结果:3是011,5是101,两者异或结果为110,再与3进行异或则为011^110=101,即所要的结果5。
class Solution: def singleNumber(self, nums: List[int]) -> int: res = 0 for i in nums: res ^= i return res
关于"LeetCode如何查出只出现一次的数"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
结果
思路
两个
次数
篇文章
运算
相同
差值
数字
更多
知识
哈希
不同
不错
实用
中用
二进制
内容
又是
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
初中网络安全信息技术公开课
探析计算机网络技术未来趋势
存储非结构化数据时序数据库
情侣空间服务器繁忙是怎么回事
理财记账软件开发
数据库课后习题答案施伯乐
赌博追款租服务器吗
excel 是数据库吗
基层科普网络技术
塔式服务器是不是主机
数据库sql查询指令
暗黑2主机连不上服务器
计算机网络技术就业前景知乎
方舟服务器有假人么
实体类的数据库操作语句
网络安全法律法规试行时间
位置服务器排行
长沙电子软件开发学校
拒绝root模式访问数据库
商务局网络安全宣传
服务器安装域名
0代码桌面软件开发
北京软件开发公司工资
静安区数据库安防系统技术
虹口区一站式软件开发推荐咨询
湖南常见软件开发代理价钱
网络安全小儿歌20字
华威校友邮箱服务器
网络安全活动成效
网络安全知识竞赛动态