[6kyu][algorithms][my-solution] Find The Parity Outlier solution
You are given an array (which will have a length of at least 3, but could be very large) containing integers. The array is either entirely comprised of odd integers or entirely comprised of even integers except for a single integer N. Write a method that takes the array as an argument and returns this "outlier" N.
This commit is contained in:
@@ -10,10 +10,47 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
// export function findOUtlier(integers: number[]): number {
|
||||||
|
|
||||||
|
// const isEvenNum = integers.filter(num => num % 2 == 0);
|
||||||
|
// const isOddNum = integers.filter(num => num % 2 != 0);
|
||||||
|
|
||||||
|
// return isEvenNum.length == 1 ? Number(isEvenNum) : Number(isOddNum);
|
||||||
|
// };
|
||||||
|
|
||||||
export function findOUtlier(integers: number[]): number {
|
export function findOUtlier(integers: number[]): number {
|
||||||
|
const evenNum: number[] = [];
|
||||||
|
const oddNum: number[] = [];
|
||||||
|
const middle = Math.trunc(integers.length / 2);
|
||||||
|
let end = integers.length - 1;
|
||||||
|
let start = 0;
|
||||||
|
|
||||||
const isEvenNum = integers.filter(num => num % 2 == 0);
|
while (start < middle || end >= middle) {
|
||||||
const isOddNum = integers.filter(num => num % 2 != 0);
|
|
||||||
|
|
||||||
return isEvenNum.length == 1 ? Number(isEvenNum) : Number(isOddNum);
|
if (start !== middle) {
|
||||||
|
if (!(integers[start] % 2)) {
|
||||||
|
evenNum.push(integers[start])
|
||||||
|
} else {
|
||||||
|
oddNum.push(integers[start])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!(integers[end] % 2)) {
|
||||||
|
evenNum.push(integers[end])
|
||||||
|
} else {
|
||||||
|
oddNum.push(integers[end])
|
||||||
|
}
|
||||||
|
|
||||||
|
if (evenNum.length === 1 && oddNum.length > 1 || oddNum.length === 1 && evenNum.length > 1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
start++;
|
||||||
|
end--;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return evenNum.length === 1 ? evenNum[0] : oddNum[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user