문제

This is an Interview question.

Say you have an array like this

{54,23,545,65,23,4,1,2,5}

How to sort it and classify as even or odd in a single line of code?

The answer's order of complexity should be O(1), without using any for loop. The result should be:

{2,4,54,1,5,23,23,65,545}
도움이 되었습니까?

해결책

If instantiating and using an anonymous implementation of Comparator can be considered a single line:

Arrays.sort(arr, new Comparator<Integer>(){public int compare(Integer o1, Integer o2) {return o1%2 == o2%2 ? o1.compareTo(o2) : (o1%2 == 0 ? -1 : 1); }});

Ideone demo.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top