题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
思路一:哈希表
class Solution:
def singleNumber(self,nums):
dic = dict()
for i in nums:
if i not in dic:
dic[i] = 1
else:
dic[i] += 1
for item in dic:
if dic[item] == 1:
return item
你可以不使用额外空间来实现吗?
思路二:位运算——一个数与其本身异或运算仍为这个数
class Solution:
def singleNumber(self,nums):
ret = 0
for i in nums:
ret = ret ^ i
return ret
该博客探讨了两种解决数组中只有一个元素出现一次的问题。第一种方法是使用哈希表,遍历数组并记录每个元素出现的次数,然后返回出现次数为1的元素。第二种方法巧妙地利用位运算是自己与自己异或结果不变的性质,通过异或所有元素得到只出现一次的数字。

被折叠的 条评论
为什么被折叠?



