Встречается на собеседованиях • сегодня
Сколько времени понадобится на удаление дубликатов из отсортированного списка
Для удаления дубликатов из отсортированного списка в Java оптимально использовать алгоритм с двумя указателями. Временная сложность — O(n), где n — размер списка, так как каждый элемент проверяется один раз.
Пример с `ArrayList`:
```java
public int removeDuplicates(List sortedList) {
if (sortedList.isEmpty()) return 0;
int writeIndex = 1;
for (int readIndex = 1; readIndex < sortedList.size(); readIndex++) {
if (!sortedList.get(readIndex).equals(sortedList.get(writeIndex - 1))) {
sortedList.set(writeIndex++, sortedList.get(readIndex));
}
}
return writeIndex; // Новый размер без дубликатов
}
```
Особенности:
1. Работает in-place (без создания нового списка)
2. Сохраняет исходный порядок элементов
3. Для `LinkedList` сложность остаётся O(n), но операции set/get менее эффективны

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы