千家信息网

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

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关LeetCode如何查出只出现一次的数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1题目描述给定一个非空整数数组,只有一个数字出现一次
千家信息网最后更新 2025年12月02日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安全错误 数据库的锁怎样保障安全 专业视频软件开发使用什么笔记本 威纶通触摸屏串口服务器 沈阳软件开发公司外派 全球的网络安全市场规模 网络安全技术支撑五星级单位 软件开发在小城市能干什么 网络安全敌情观念 数据库语句是不是要大写 数据库技术和网络技术一起考 大兴区综合软件开发创新服务 滨州财务办公软件开发咨询 初三政治网络安全知识 网络安全信息泄露的调查问卷 管家婆的服务器 服务器密码设置样表 多站点 共享数据库 四川电信服务器是哪个区的服务器 厦门不动产数据库 软件开发需要学历吗 软件开发万元笔记本推荐 秦皇岛共享折叠床软件开发 java 调用两个数据库 和创互联网科技 为了网络安全请不要发链接 勤哲服务器费用 人在网络安全中的重要性 数据库子查询会带条件吗 北京国智惠民互联网科技有限公司 数据库中必须存在哪些表空间 高斯数据库审计日志
0