只出现一次的数字

要求:

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。(算法应该具有线性时间复杂度)

示例:

(1)
输入: [2,2,1]

输出: 1

(2)
输入: [4,1,2,1,2]

输出: 4

分析:

为了找出只出现一次的元素,可以先将所有元素出现的次数变为一次,然后对所有元素求和,乘以2倍,减去原来数组元素的和,即为只出现一次的元素的值。

代码:
1
2
3
4
5
6
7
class Solution:
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return sum(set(nums))*2 - sum(nums)
参考资料:

1、LeetCode 136. 只出现一次的数字 Python https://blog.csdn.net/ma412410029/article/details/80511684


只出现一次的数字
https://xiepeng21.cn/posts/2c835ddc/
作者
Peng Xie
发布于
2018年7月17日
许可协议