Skip to content

Commit fb9154d

Browse files
committed
[feat] New algorithm
1 parent 84b01ae commit fb9154d

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

Maths/ParityOutlier.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @author mrmagic2020
3+
* @description The function will find the parity outlier from an array of integers.
4+
* @see https://en.wikipedia.org/wiki/Parity_(mathematics)
5+
* @param {number[]} integers - An array of integers.
6+
* @returns {number} - The parity outlier.
7+
* @example parityOutlier([1, 3, 5, 8, 9]) = 8
8+
*/
9+
const parityOutlier = (integers) => {
10+
// define new containers
11+
let odds = []; //store odd number(s)
12+
let evens = []; // store even number(s)
13+
14+
for (let i = 0; i < integers.length; i++) {
15+
if (!Number.isInteger(integers[i])) { // detect non-integer elements
16+
return null;
17+
} else if (integers[i] % 2 === 0) { // an even number
18+
evens.push(integers[i]);
19+
} else { // an odd number
20+
odds.push(integers[i]);
21+
}
22+
}
23+
24+
if (odds.length === 0 || evens.length === 0) return null;
25+
26+
return odds.length === 1 ? odds[0] : evens[0];
27+
}
28+
29+
export { parityOutlier };

0 commit comments

Comments
 (0)