news 2026/5/12 10:41:57

LeetCode热题100-只出现一次的数字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题100-只出现一次的数字

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

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

题目要求线性时间复杂度,空间复杂度为常量,而且规定除了某个元素出现1次外,其他均出现2次。

首先使用普通解题方法哈希表:

class Solution: def singleNumber(self, nums: List[int]) -> int: if not nums: return -1 res = {} for i in range(len(nums)): if nums[i] in res: res[nums[i]] = res[nums[i]] + 1 continue res[nums[i]] = 1 for key, value in res.items(): if value == 1: return key

上面方法对于空间复杂度不满足要求,但是是一种容易想到的方式,下面的这种不容易想到就是异或运算。由于其他元素都出现2次,所以这些元素异或最终为0,再和出现1次的元素异或,最后就是出现1次的元素值。

异或运算(^)是二进制运算,满足以下 3 条性质,是解决「只出现一次数字」的核心:

  1. 自身异或为 0a ^ a = 0(比如 5^5=0,二进制 101^101=000);
  2. 异或 0 为自身a ^ 0 = a(比如 5^0=5,二进制 101^000=101);
  3. 交换律和结合律a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c(顺序不影响结果)。
class Solution: def singleNumber(self, nums: List[int]) -> int: res = 0 for num in nums: res ^= num return res
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 15:38:21

LLM 算法岗 | 八股问答()· 多模态与主流模型架构拘

7.1 初识三维模型 7.1.1 三维模型的数据载体 随着计算机图形技术的发展,我们或多或少都会见过或者听说过三维模型。笔者始终记得小时候第一次在电视上看到三维动画《变形金刚:超能勇士》的震撼感受;而现在我们已经可以在手机上玩三维游戏《王…

作者头像 李华
网站建设 2026/4/28 8:55:46

jQuery元素遍历与条件检测

在网页开发中,经常会遇到需要检测多个元素状态并基于此做出某种响应的情况。本文将结合一个具体的实例,详细介绍如何使用jQuery来遍历DOM元素,并根据它们的CSS属性值来决定是否显示一条消息。 问题描述 假设我们有一个父容器div,其内部包含多个子div元素,我们希望检查这…

作者头像 李华
网站建设 2026/4/19 20:36:24

警惕AI患上“讨好症”:来自图灵奖得主Bengio的揭秘

来源:星云创联AI智库在人工智能的万神殿中,“深度学习三巨头”的晚年画像构成了某种充满张力的隐喻。Yann LeCun 活成了永远愤怒的乐观派,在社交媒体上不知疲倦地战斗,坚信AI不过是手中的工具;Geoffrey Hinton 则化身为…

作者头像 李华
网站建设 2026/5/11 13:14:48

[AI/Agent/社交] AI Agent社交网络产品:MoltBook => InStreet头

一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…

作者头像 李华
网站建设 2026/4/22 12:21:49

如何快速掌握BespokeSynth:模块化合成器的终极架构解析

如何快速掌握BespokeSynth:模块化合成器的终极架构解析 【免费下载链接】BespokeSynth Software modular synth 项目地址: https://gitcode.com/gh_mirrors/be/BespokeSynth BespokeSynth是一款强大的软件模块化合成器,它允许音乐创作者通过图形界…

作者头像 李华
网站建设 2026/4/16 1:27:38

终极Docker企业级部署指南:从开发到生产的完整运维方案

终极Docker企业级部署指南:从开发到生产的完整运维方案 【免费下载链接】docs Source repo for Dockers Documentation 项目地址: https://gitcode.com/gh_mirrors/docs3/docs Docker企业级部署是现代DevOps流程的核心环节,它通过容器化技术确保应…

作者头像 李华