Программа курса:
Задача 13: Удаление дубликатов из отсортированного массива
Напишите опредление функции def remove_duplicates(nums)
, которая принимает nums - массив целочисленных значений, отсортированный в неубывающем порядке, удалите дубликаты на месте так, чтобы каждый уникальный элемент появлялся только один раз. Порядок элементов должен оставаться тем же. Верните количество уникальных элементов в nums
.
Предположим, что n
- это количество уникальных элементов в nums
. Чтобы решение прошло все тесты, нужно выполнить следующие действия:
Изменить массив
nums
так, чтобы первыеn
элементовnums
содержали уникальные элементы в том же порядке, в каком они были изначально в массивеnums
.Вернуть значение
n
.
Пример 1:
Ввод: nums = [1,1,2]
Вывод: 2
Как изменился список: nums = [1,2,_]
Пояснение: Ваша функция должна вернуть 2, причем первые два элементы в nums это 1 и 2, в том же порядке, что и в изначальном nums. Не имеет значения, что будет идти после n
элементов (для примера они равны нижнему подчеркиванию).
Пример 2:
Ввод: nums = [0,0,1,1,1,2,2,3,3,4]
Вывод: 5
Как изменился список: nums = [0,1,2,3,4,_,_,_,_,_]
Пояснение: Ваша функция должна вернуть 5, причем первые два элементы в nums это 0, 1, 2, 3 и 4, в том же порядке, что и в изначальном nums. Не имеет значения, что будет идти после n
элементов (для примера они равны нижнему подчеркиванию).
xsnm
,удалите дубликаты на месте так, чтобы каждый уникальный элемент появлялся только один раз.
xsnm
,nums[unique_index] = nums[i] # "=" Это оператор присвоения. То есть элемент nums[unique_index] копия элемента nums[i]. Копия.....
# А это не уникальный элемент. Не оригинал. Где оригинал??????. Если решать то, первый элемент "1" в ряде оригинал и его нельзя трогать и так далее.
# "0" по умолчанию.
DeaglenS
,Про то, что такое "на месте" написано в следующей задаче