Sobes.tech
Junior — Middle
103

Sıralanmış bir diziden yinelenenleri kaldırma işleminin çalışma süresi nasıl belirlenir?

AI'dan gelen yanıt

sobes.tech yapay zeka

Время выполнения операции удаления дубликатов из отсортированного массива обычно оценивается как 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).