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.
Examples
[2, 4, 0, 100, 4, 11, 2602, 36]
Should return: 11 (the only odd number)
[160, 3, 1719, 19, 11, 13, -21]
Should return: 160 (the only even number)
Steps.
- I want to create two arrays that will serve as a store for the odd numbers and the even numbers.
- creating a for loop that will iterate through the array given .
- on each iteration i will check if the number is an even number or an odd number using the modulus operator.
- if even number I will push it inside the even Number array and if odd I will push it inside the odd number array.
- still inside the for loop before doing another iteration i will check if the even number array and the odd number array has an element inside it.
- if yes i will check the smallest between the two of then and return the value inside that one. Note: the question said the outlier is just one so the array that is the smallest is of course the one that contains the outlier so i will return the first and only element in that array.
Algorithm.
function findOutlier(integers){
//your code here
let evenArr = []
let oddArr = []
for (let index = 0; index < integers.length; index++) {
const element = integers[index];
if(element % 2 == 0){
evenArr.push(element)
}else{
oddArr.push(element)
}
if(evenArr.length > 0 && oddArr.length > 0){
if(evenArr.length > oddArr.length){
return oddArr[0]
}else if(oddArr.length > evenArr.length){
return evenArr[0]
}
}
}
}
console.log(findOutlier([2,6,8,10,3]));
Top comments (0)