Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.
You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
Constraints:
1 <= nums.length <= 3 * 104
-3 * 104 <= nums[i] <= 3 * 104
Each element in the array appears twice except for one element which appears only once.
In [ ]:
from typing import List
class Solution:
def singleNumber(self, nums: List[int]) -> int:
dict={}
for i in range(0,len(nums)):
if nums[i] in dict.keys():
del dict[nums[i]]
else:
dict[nums[i]] = 1
for keys in dict:
return keys
s = Solution()
s.singleNumber([2,2,1])
Out[ ]:
1
In [ ]:
from typing import List
from collections import defaultdict
class Solution:
def singleNumber(self, nums: List[int]) -> int:
hashTable=defaultdict(int)
for i in nums:
hashTable[i]=hashTable[i]+1
for key in hashTable:
if(hashTable[key]==1):
return key
s = Solution()
s.singleNumber([2,2,1])
Out[ ]:
1
In [ ]:
from typing import List
from collections import defaultdict
class Solution:
def singleNumber(self, nums: List[int]) -> int:
result=0
for i in nums:
result = result ^ i
return result
s = Solution()
s.singleNumber([2,2,1,1,5,4,3,5,3])
Out[ ]:
4