题目来源:
https://leetcode.com/problems/single-number/
题意分析:
给定一个数组,每个数都出现了2次,只有一个出现了一次,找出这个数。要求时间复杂度O(n),空间复杂度O(1)。
题目思路:
这道题目利用位操作。位操作的异或(^),他的其中一个属性是,n^n = 0, 0^n = n。只要将所有的数都进行异或就得到出现一次的数。
代码(python):
class Solution(object): def singleNumber(self, nums): """ :type nums: List[int] :rtype: int """ ans = 0 for i in nums: ans ^= i return ans