当前位置: 首页 > 后端技术 > Python

只出现一次的数字(Python3)不使用额外空间

时间:2023-03-26 11:36:12 Python

问题:给定一个非空整数数组,除了某个元素只出现一次外,每个元素出现两次。找到只出现一次的元素。要求:您的算法应该具有线性时间复杂度。你能在不使用额外空间的情况下做到吗?解题思路:用异或运算求解。异或运算规则:1、同一个数的异或运算结果为0。2、0与任意数的异或运算结果为该数。例如[4,1,1]4与1异或为5,5与1异或为4,最终输出4即为正确答案。因此算法首先将最终的输出值置0,将输出值与数组中的所有元素进行异或运算,得到最终的答案。代码如下( ̄▽ ̄):classSolution:defsingleNumber(self,nums:List[int])->int:num=0foriinrange(len(nums)):num=num^nums[i]返回num时空复杂度:题目链接:https://leetcode-cn.com/probl...