Ctrl K

Единицу вперёд, максимум назад

Лёгкая
Дан массив line длины n, в котором каждое число от 1 до n встречается ровно один раз — например, номера участников, вставших в очередь вразнобой. За одну операцию можно поменять местами два соседних элемента. Найдите наименьшее число операций, после которого первым в массиве окажется 1, а последним — n. Порядок остальных элементов не важен.
Пример 1
line=[3, 1, 2, 4] → 1

Одного обмена 3 и 1 достаточно: получается [1, 3, 2, 4], первый — 1, последний — 4.

Пример 2
line=[4, 2, 3, 1] → 5

Единице нужно пройти три позиции влево, а четвёрке — три вправо, но один обмен они делают друг с другом, и он засчитывается обеим: всего 5.

Пример 3
line=[1, 4, 2, 3, 5] → 0

1 уже в начале, 5 уже в конце — менять ничего не нужно.

Ограничения
  • 2 ≤ n == line.length ≤ 50
  • line содержит каждое число от 1 до n ровно один раз
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСколько горел свет ЛёгкаяПереложить в другой лоток ЛёгкаяЖурнал очков викторины ЛёгкаяЗеркало и негатив ЛёгкаяСтроки становятся столбцами Лёгкая
загружаем Python…
Вход
line=[3, 1, 2, 4]
Ожидается
1

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 100 тестов на сервере, включая скрытые.