Встречалось ли число раньше
Вы решили задачу. Теперь можно сравнить подходы.
Множество содержит только уже обработанные числа.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Множество просмотренных
Проверяем принадлежность до добавления текущего числа.
seen = set()
for x in map(int, input().split()):
print("YES" if x in seen else "NO")
seen.add(x)
Время: O(n) в среднем. Память: O(n).
Другой способ: Поиск в предыдущем списке
Список тоже позволяет проверить наличие, но поиск линейный.
seen = []
for x in map(int, input().split()):
print("YES" if x in seen else "NO")
seen.append(x)
Время: O(n²). Память: O(n).
На что обратить внимание
- Первое появление всегда NO, последующие появления того же числа — YES.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.