Правила
[Одномерные массивы]
57. Дан одномерный массив чисел, среди элементов которого есть одинаковые. Создать новый массив из различных элементов исходного массива.
terranum
28 уровень
Кухня(); Задание N57
Правила
[Одномерные массивы]
57. Дан одномерный массив чисел, среди элементов которого есть одинаковые. Создать новый массив из различных элементов исходного массива.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
<code>public static int[] solution(int[] source) { // *** active length int length = source.length; // *** general sequence for (int i = 0; i < length; i++) { boolean flag = false; // *** inner sequence, find element equal i-element for (int j = i+1; j < length; j++) { if(source[i] == source[j]) { int temp = source[--length]; source[length] = source[j]; source[j--] = temp; flag = true; } } // *** swap i-element if (flag) { int temp = source[--length]; source[length] = source[i]; source[i--] = temp; } } return Arrays.copyOfRange(source, 0, length); }</code>если не сложно объясни про // *** swap i-element
1. надо вернуть только те числа, которые встречаются в массиве 1 раз.
2. надо убрать дубли, оставив все числа по 1 разу.
Ваш метод по первому варианту отрабатывает нормально, только еще и сортирует исходный массив.
в конец массива перемещаются все элементы, равные i-му.
А здесь
в конец перемещается сам i-й элемент.
а первый или второй вариант разница невелика)
вот оно че, этот блок можно убрать, так как в задании нужно убрать дубликаты…
это как если бы мы в сет добавляли, должно получиться
2)