[CodeWars] Find the Parity Outlier

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

[240100411260236]
Should return11 (the only odd number)
 
[1603171919111321]
Should return160 (the only even number)
cs

My Solution

#include <math.h>
 
int FindOutlier(std::vector<int> arr)
{
    std::vector<int> odd, even;
 
    for (std::vector<int>::const_iterator i = arr.begin(); i != arr.end(); ++i)
        abs(*i%2== 1 ? odd.push_back(*i) : even.push_back(*i);
 
    return odd.size() > even.size() ? even.at(0) : odd.at(0);
}
cs

I used two vector arrays, odd, even. If the input element of array is odd number, put the number to odd vector. If not, put it to even vector.

To find parity number, compare two vector arrays. then, returns the first element of smaller array.

글쓴이: BakJH

Student of Daedeok SW Meister Highschool, in Korea.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중