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: [2,2,1]
Output: 1
Example 2:
Input: [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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Solution:
def singleNumber(self, nums: List[int]) -> int:
s = set()
for num in nums:
if num in s:
s.remove(num)
else:
s.add(num)
return list(s)[0]
"""
Math
"""
class Solution:
def singleNumber(self, nums: List[int]) -> int:
return 2 * sum(set(nums)) - sum(nums)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
func singleNumber(nums []int) int {
set := make(map[int]bool)
for _, num := range nums {
if _, ok := set[num]; ok {
delete(set, num)
} else {
set[num] = true
}
}
for num, _ := range set {
return num
}
return -1
}
|