[LeetCode]题解(python):136-Single Number

题目来源:

  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
View Code

 

posted @ 2016-04-05 16:03  Ry_Chen  阅读(494)  评论(0编辑  收藏  举报