Правила[Одномерные массивы]35. Дан целочисленный массив с количеством элементов n. "Сожмите" массив, выбросив из него каждый второй элемент (дополнительный массив при этом не использовать).
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
System.out.println(Arrays.toString(solve(new int[]{ 0, 1, 2, 3, 4, 5, 6, 7 })));
}
public static int[] solve(int[] arr) {
// size of new array
int pivot = (arr.length + 1) / 2;
// process the array
for (int i = 1; i < pivot; i++) {
arr[i] = arr[2 * i];
}
// make backup of array
TrimHelper start = new TrimHelper();
TrimHelper cur = start;
for (int i = 0; i < pivot; i++) {
cur.value = arr[i];
cur = cur.next = new TrimHelper();
}
// reinitialize array and restore its elements
arr = new int[pivot];
cur = start;
for (int i = 0; i < pivot; i++) {
arr[i] = cur.value;
cur = cur.next;
}
return arr;
}
public static class TrimHelper {
int value;
TrimHelper next;
TrimHelper(){};
}
}
Да необходимо уменьшить, можно пользоваться Arrays.
Запрещено: создавать дополнительный массив, коллекции вообще запрещено использовать во всех заданиях на одномерные массивы.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Из исходников java.util.Arrays
Запрещено: создавать дополнительный массив, коллекции вообще запрещено использовать во всех заданиях на одномерные массивы.