Вроде бы все сделал по условию. Но не проходит. Подскажите что не нравится валидатору?
package com.javarush.task.task26.task2601;
import java.util.*;
import java.util.stream.Stream;
/*
Почитать в инете про медиану выборки
*/
public class Solution {
public static void main(String[] args) {
// Integer[] ar = new Integer[]{13, 14, 15, 10, 10, 12, 10, 12, 13, 16};
// Integer[] arsort = sort(ar);
// for (int i = 0; i < arsort.length; i++) {
// System.out.print(arsort[i]+" ");
// }
}
public static Integer[] sort(Integer[] array) {
//implement logic here
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < array.length; i++) {
list.add(array[i]);
}
Comparator<Integer> sortbyValue = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
};
Collections.sort(list, sortbyValue);
double med=0;
if (list.size()%2==0) {
med= (double) (list.get(list.size()/2-1)+list.get(list.size()/2))/2;
list.remove(list.get(list.size()/2));
list.remove(list.get(list.size()/2));
}
if (list.size()%2!=0) {
med =(double)list.get((list.size()-1)/2);
list.remove(list.get((list.size()-1)/2));
}
Integer[] arsortbymed = new Integer[list.size()+1];
arsortbymed[0] = (int) med;
Comparator<Integer> sortbymed = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
int a, b, c;
a = Math.abs(o1 - arsortbymed[0])*1000;
b = Math.abs(o2 - arsortbymed[0])*1000;
c=a-b;
return c;
}
};
Collections.sort(list, sortbymed);
for (int i = 0; i < list.size(); i++) {
arsortbymed[i+1] = list.get(i);
}
return arsortbymed;
}
}
это вывод с твоим кодом:
