LeetCode简单题之只出现一次的数字

news/2025/3/15 12:47:45/

题目

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
来源:力扣(LeetCode)

解题思路

  这个题想要写出来不难,难的是原地解决问题。如果没有限制的话建一个频率表找到频率为1的值就可以了。

class Solution:def singleNumber(self, nums: List[int]) -> int:d={}for i in nums:d[i]=d.get(i,0)+1for i,j in d.items():if j==1:return i

在这里插入图片描述
  如果加上限制条件的话,思维不发散是很难想到异或运算的。在leetcode的官方中给出了一个符合条件且空间复杂度为O(n)的方法,就是利用异或运算的性质。

class Solution:def singleNumber(self, nums: List[int]) -> int:temp=0for i in nums:temp^=ireturn temp

在这里插入图片描述


http://www.ppmy.cn/news/606211.html

相关文章

小芯片技术分析

小芯片技术分析 芯粒(Chiplet)是在2015年Marvell创始人之一周秀文(Sehat Sutardja)博士曾提出Mochi(Modular Chip,模块化芯片)架构的概念,这是芯粒最早的雏形。 几十年来,半导体行业一直按照摩尔定律的规律发展着&…

Linux学习(5)——远程登录到Linux服务器

✨Linux——远程登录到Linux服务器⛱️应用场景⛱️远程登录Linux-Xshell7🍕🍕 介绍🍕🍕Xshell7的下载-安装-配置-使用🍕🍕Xshell连接虚拟机⛱️远程上传下载文件Xftp7🍕🍕基本介绍&…

LeetCode简单题之排列硬币

题目 你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。 给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。 示例 1: 输入&…

集成电路技术市场产业链

集成电路技术市场产业链 集成电路英语:integrated circuit,缩写作 IC;或称微电路(microcircuit)、微芯片(microchip)、晶片/芯片(chip)在电子学中是一种将电路&#xff0…

LeetCode简单题之找到所有数组中消失的数字

题目 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 示例 1: 输入:nums [4,3,2,7,8,2,3,1] 输出:[5,6] 示例…

Linux学习(6)——vi和vim快速入门

✨Linux——vi和vim的基本介绍⛱️vi和vim基本介绍⛱️vi和vim常用的三种模式⛱️ 快速入门⛱️各种模式的切换⛱️快捷键使用及其练习📃个人主页:不断前进的皮卡丘🌞博客描述:梦想也许遥不可及,但重要的是追梦的过程,用博客记录自…

四、OkHttp_连接池

预备知识 通常我们进行HTTP连接网络的时候我们会进行TCP的三次握手,然后传输数据,然后再释放连接。 大量的连接每次连接关闭都要三次握手四次分手的很显然会造成性能低下, 因此http有一种叫做keep-alive connections的机制(HTTP1…

pytorch学习笔记(九):PyTorch结构介绍

PyTorch结构介绍对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握。水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型和数值相关的TensorVariableParameterbuf…