diff --git a/lib/findOUtlier/findOUtlier.ts b/lib/findOUtlier/findOUtlier.ts index 83bffc1..e5685b4 100644 --- a/lib/findOUtlier/findOUtlier.ts +++ b/lib/findOUtlier/findOUtlier.ts @@ -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 { + const evenNum: number[] = []; + const oddNum: number[] = []; + const middle = Math.trunc(integers.length / 2); + let end = integers.length - 1; + let start = 0; + + while (start < middle || end >= middle) { + + if (start !== middle) { + if (!(integers[start] % 2)) { + evenNum.push(integers[start]) + } else { + oddNum.push(integers[start]) + } + } - const isEvenNum = integers.filter(num => num % 2 == 0); - const isOddNum = integers.filter(num => num % 2 != 0); - return isEvenNum.length == 1 ? Number(isEvenNum) : Number(isOddNum); + 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]; }; +