-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfindOdd.js
More file actions
25 lines (19 loc) · 780 Bytes
/
findOdd.js
File metadata and controls
25 lines (19 loc) · 780 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
// Given an array of integers, find the one that appears an odd number of times.
// There will always be only one integer that appears an odd number of times.
// Examples
// [7] should return 7, because it occurs 1 time (which is odd).
// [0] should return 0, because it occurs 1 time (which is odd).
// [1,1,2] should return 2, because it occurs 1 time (which is odd).
// [0,1,0,1,0] should return 0, because it occurs 3 times (which is odd).
// [1,2,2,3,3,3,4,3,3,3,2,2,1] should return 4, because it appears 1 time (which is odd).
function findOdd(A) {
let check = {};
for (let num of A) {
check[num] = (check[num] || 0) + 1;
}
for (let key in check) {
if (check[key] % 2 !== 0) {
return Number(key); // Convert string key back to number
}
}
}