题目:
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
参考代码:
def singleNumber(self, nums: List[int]) -> int:
x = nums[0]
for num in nums[1:]:
x ^= num
return x
反思:
1、想不出来。
2、本题主要使用异或的特性:
(1)任何数与0异或,不变
(2)相同的两个数异或位0
网友评论