Да, Set(nums)
выделяет дополнительную память. Он может быть таким же большим, как и сам массив, если все исходные значения уникальны.
O (1) память означает, что ваш алгоритм будет выделять только постоянный объем дополнительной памяти (вероятно, только 4 или 5 переменных), что не зависит от размера входного массива. Представьте разницу в объеме памяти, который ваш алгоритм будет использовать, когда входной массив имеет 10 значений и когда он имеет 10 000 значений. Set
будет занимать гораздо больше памяти во втором случае, поэтому это не O (1).
Подсказка: используйте тот факт, что массив отсортирован для обнаружения дубликатов.