-
标签:
位运算
-
难度:
简单
- 题目描述
- 官方解法
题目要求不用额外空间,一时想不出解法,瞅了下solution
, 确认过眼神,是精妙的解法。
异或运算满足 交换律,结合律。假设所有的数为:abcbcda
, d
为只出现一次的元素,为找出 d
, 只需:
a ^ b ^ c ^ b ^ c ^ d ^ a
= a ^ a ^ b ^ b ^ c ^ c ^ d
= 0 ^ 0 ^ 0 ^ d
= d
【例子来源】
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
a = 0
for i in nums:
a ^= i
return a
- 其他解法
暂略。
网友评论