Sobes.tech
Назад к вопросам
Junior — Middle
65

Как определить время выполнения операции удаления дубликатов из отсортированного массива?

Ответ от нейросети

sobes.tech AI

Время выполнения операции удаления дубликатов из отсортированного массива обычно оценивается как O(n), где n — длина массива. Это связано с тем, что при отсортированном массиве дубликаты идут подряд, и достаточно одного прохода по массиву, чтобы их удалить.

Пример на Java:

public int removeDuplicates(int[] nums) {
    if (nums.length == 0) return 0;
    int i = 0;
    for (int j = 1; j < nums.length; j++) {
        if (nums[j] != nums[i]) {
            i++;
            nums[i] = nums[j];
        }
    }
    return i + 1; // новая длина массива без дубликатов
}

Здесь мы проходим по массиву один раз, сравнивая текущий элемент с предыдущим уникальным, и копируем уникальные элементы вперед. Таким образом, алгоритм работает за линейное время O(n).