Чтобы найти недостающее число в перестановке, можно попробовать несколько методов. Вот несколько часто используемых подходов:
-
Метод 1: суммирование и различие
- Рассчитайте ожидаемую сумму перестановки по формуле n*(n+1)/2, где n — длина перестановки.
- Найдите сумму всех чисел в данной перестановке.
- Недостающее число будет разницей между ожидаемой суммой и фактической суммой перестановки.
-
Метод 2: операция XOR
- Выполните операцию XOR всех чисел от 1 до n (где n — длина перестановки).
- Выполните XOR всех чисел в данной перестановке.
- Недостающее число будет результатом XOR двух операций XOR.
-
Метод 3. Сортировка и сравнение
- Отсортируйте данную перестановку в порядке возрастания.
- Пройтись по отсортированной перестановке и сравнить каждый элемент с его индексом плюс один (поскольку перестановка начинается с 1).
- Первый элемент, индекс которого не соответствует его индексу плюс один, – это пропущенное число.
-
Метод 4: хеширование
- Создайте пустую хеш-таблицу.
- Пройти по заданной перестановке и вставить каждое число в хеш-таблицу.
- Выполните итерацию от 1 до n и проверьте, существует ли каждое число в хеш-таблице.
- Недостающим номером будет тот номер, которого нет в хеш-таблице.