Это потому, что если ваша вторая строка в removeDuplicates
:
nums = nums + [nums[-1] + 1] # add a dummy element to the end of the list
Это создает новую копию параметра списка nums
, который был передан по ссылке, и ваши операции удаления дубликатов изменяют копиювместо исходного списка.
У вашей функции также есть другие проблемы, без этой строки я получаю вывод:
>>> nums = [1, 1, 1, 2, 2, 3, 4, 4, 4, 5, 5]
>>> removeDuplicates(nums)
[1, 2, 3, 4, 2, 3, 4, 4, 4, 5]
Посмотрите на этот превосходный ответ для лучших подходов: https://stackoverflow.com/a/7961390/11776945