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)