Мини-урок · перед практикой
Встречалось ли число раньше
Множество содержит только уже обработанные числа.
Как к ней подойти
Увидите, как множества помогают сравнивать группы без повторяющихся элементов.
Коротко о теме
Множество хранит каждый элемент один раз. Пересечение a & b оставляет общие элементы, разность a - b - только элементы a, а объединение a | b собирает обе группы. Если важен порядок вывода, отсортируйте результат отдельно.
Ключевая идея · Множество просмотренных
Проверяем принадлежность до добавления текущего числа.
Проверьте перед запуском
- Первое появление всегда NO, последующие появления того же числа — YES.
После практики
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Множество просмотренных
Проверяем принадлежность до добавления текущего числа.
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).