Потерянная карточка
Вы решили задачу. Теперь можно сравнить подходы.
Вычитаем известные номера из суммы всех карточек.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Сумма прогрессии
Все присутствующие номера сокращаются; остаётся потерянный.
n = int(input())
missing = n * (n + 1) // 2
for _ in range(n - 1):
missing -= int(input())
print(missing)
Время: O(n). Память: O(1) целых чисел.
Другой способ: Побитовое исключающее ИЛИ
x XOR x равен нулю, поэтому одинаковые номера взаимно уничтожаются.
n = int(input())
missing = 0
for i in range(1, n + 1):
missing ^= i
for _ in range(n - 1):
missing ^= int(input())
print(missing)
Время: O(n). Память: O(1) целых чисел.
На что обратить внимание
- При N=1 других карточек нет; ответ сразу равен 1.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.