Переставить min и max
Находим позиции минимального и максимального значений, затем обмениваем элементы.
Как к ней подойти
Потренируйтесь хранить последовательность значений и обращаться к нужным элементам списка.
Список хранит элементы в определённом порядке. Прежде чем менять его, решите, нужны ли исходные индексы и можно ли пройти по данным один раз. При удалении элементов будьте внимательны: индексы сдвигаются.
Храним индексы обоих экстремумов. Обмен выполняется после поиска, чтобы исходные значения не изменялись раньше времени.
Проверьте перед запуском
- Нужно поменять элементы, а не весь порядок списка.
- Один элемент одновременно является минимумом и максимумом.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Один проход по индексам
Храним индексы обоих экстремумов. Обмен выполняется после поиска, чтобы исходные значения не изменялись раньше времени.
a = list(map(int, input().split()))
lo = hi = 0
for i in range(1, len(a)):
if a[i] < a[lo]:
lo = i
if a[i] > a[hi]:
hi = i
a[lo], a[hi] = a[hi], a[lo]
print(*a)
Время: O(n). Память: O(n), включая входные данные.
Другой способ: Встроенные функции
min/max находят значения, index — их позиции. Проходов больше, но общая сложность остаётся линейной.
a = list(map(int, input().split()))
lo = a.index(min(a))
hi = a.index(max(a))
a[lo], a[hi] = a[hi], a[lo]
print(*a)
Время: O(n). Память: O(n), включая входные данные.