Но есть вопросы по решению
Вот мой код:
public static void executeDefragmentation(String[] array) {
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1; j++) {
if (array[j] == null) {
array[j] = array[j + 1];
array[j + 1] = null;
}
}
}
}
}
Валидатор принимает в циклах значения (первый цикл)array.length, array.length-1, (вложенный цикл)array.length - i - 1, array.length-1 (практически при любых значениях длинны массива метод отрабатывает правильно). Почему?????
Сергей
34 уровень
Валидатор принял решение
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
13 августа 2023, 23:10
Не очень понимаю, зачем нужен двойной цикл.
Я не вижу условия задачи, но если требуется просто сбить все ненулевые значения влево, то оно решается одним циклом.
0
Anonymous #3062817
6 мая 2022, 12:25
Потому, что если не ставить
А только
Тогда
Будет выходить за пределы массива (будет ошибка) +2
Aleksandr
26 ноября 2021, 11:28
Прочитал работу кода, все логично.
0
Aleksandr
26 ноября 2021, 11:27
Супер! Мне не профи код кажется очень элегантным! До него я не додумался. Хотел новый массив создавать и в него писать поэлементно из массива.
0