千家信息网

LeetCode如何查出只出现一次的数

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关LeetCode如何查出只出现一次的数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1题目描述给定一个非空整数数组,只有一个数字出现一次
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 致骋互联网科技 互联网科技媒体 凡科互联网科技 互联网科技宣传片 科技大学互联网专业好不好 互联网 科技馆 富国互联网科技创新基金 互联网金融科技公司干啥的 重庆互联网医院沙龙医盟信息科技 江阴互联网智能科技产品进口 注册互联网科技公司经营范围大全 每天都有哪些好的互联网科技 互联网安防科技感 全球科技与互联网公司市值变化 湖北辰鑫科技互联网 上海万顺科技互联网有限公司招聘 众联互联网络科技 长沙易易互联网科技有限公司 上海旺乐尼互联网科技有限公司 互联网高科技绘画 互联网属科技 万易互联网科技有限公司 奇酷互联网络科技 新华互联网科技校企合作 互联网科技公司的市场部门 赶超互联网科技 微信多开 链环科技传统企业怎么转型互联网 朱啸虎曾投资哪些互联网科技企业 互联网科技股为什么大涨 恒生互联网科技趋势
0