-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path137. Single Number II.cpp
More file actions
36 lines (31 loc) · 910 Bytes
/
137. Single Number II.cpp
File metadata and controls
36 lines (31 loc) · 910 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
Given an integer array nums where every element appears three times except for one, which appears exactly once. Find the single element and return it.
You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Input: nums = [2,2,3,2]
Output: 3
Example 2:
Input: nums = [0,1,0,1,0,1,99]
Output: 99
Constraints:
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
Each element in nums appears exactly three times except for one element which appears once.
*/
class Solution {
public:
int singleNumber(vector<int>& nums) {
unordered_map<int, int> countMap;
int result = 0;
for (int num : nums) {
countMap[num]++;
}
for (auto pair : countMap) {
if (pair.second == 1) {
result = pair.first;
break;
}
}
return result;
}
};