Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
class Solution(object): def singleNumber(self, nums): """ :type nums: List[int] :rtype: int """ ans = 0 for i in range(32): mask = 1 << i cnt = 0 for num in nums: if mask & num: cnt += 1 if cnt % 3: if i == 31: ans = -(1<<31) + ans else: ans = ans | mask return ans