Я написал этот метод, чтобы найти число значений, которые больше определенного значения в массиве, и оно работает с суффиксами с положительными целыми числами, но когда я пробовал это тестовый случай не удался.Поиск массива для определенного числа целых чисел, превышающих одно целое
public static int numGreater(int[] a, int val) {
if (a == null || a.length == 0) {
throw new IllegalArgumentException();
}
int[] copy = Arrays.copyOf(a, a.length);
Arrays.sort(copy);
int answer = 0;
int nearest = copy[0];
for (int i = 0; i < copy.length; i++) {
if (Math.abs(nearest - val) > Math.abs(copy[i] - val)) {
nearest = copy[i];
answer = (copy.length - 1) - i;
}
}
return answer;
}
Вот тестовая версия, в которой я работал с JUnit.
int z[] = {-5,-2,0,4,8,15,50};
@Test public void numGreaterTest1() {
Assert.assertEquals(7, Selector.numGreater(z, -99));
}
Любые идеи о том, где я поступил не так?
чувствует себя как java? – user1759572
Да, извините, это обязательно должно быть указано в теге. – user2738319
Зачем беспокоиться о таком алгоритме? Было бы проще просто запустить массив и построить новый массив, состоящий только из более крупных значений? – user1759572