Python

Задача Python! Срочно! Задача: Каждому минимуму свой максимум!

Имеется список из N элементов. Измените исходный список, поставив справа от каждого минимального элемента максимальный. Если максимум уже стоит справа от минимума, не добавляйте его повторно.

Формат входных данных
Вводится последовательность целых чисел через пробел – элементы списка.

Формат выходных данных
Вывести измененный список.

input :
5 0 4 3 0 2

output :
5 0 5 4 3 0 5 2
----
input :

-5 -5 -5 0 -5 -5 -5 -5 4 -5 -5

output :

-5 4 -5 4 -5 4 0 -5 4 -5 4 -5 4 -5 4 -5 4 -5 4

Жду ответа! Заранее спасибо!
D)
Djerd )))
123
 numbers = list(map(int, input().split())) 

min_val = min(numbers)
max_val = max(numbers)

for i in range(len(numbers)):
if numbers[i] == min_val:
for j in range(i+1, len(numbers)):
if numbers[j] == max_val:
break
numbers.insert(j, max_val)
break

print(*numbers)
Сначала мы считываем последовательность чисел из входных данных и находим минимальное и максимальное значения в этой последовательности. Затем мы проходимся по списку и ищем первое вхождение минимального элемента. Когда мы находим его, мы начинаем проходиться по списку справа от него, чтобы найти первое вхождение максимального элемента. Когда мы находим его, мы вставляем его в список рядом с минимальным элементом. Затем мы прекращаем выполнение цикла, так как мы уже нашли первое вхождение минимального элемента и добавили рядом с ним максимальный элемент.

Мы продолжаем повторять этот процесс до тех пор, пока не обойдем весь список. В результате мы получим измененный список, где справа от каждого минимального элемента стоит максимальный элемент, если он еще не стоит там.

Надеюсь, это поможет вам решить вашу задачу.
Сергей Гонтарев
Сергей Гонтарев
856
Лучший ответ
Там в два цикла надо решать. Сначала бежим по циклу и находим минимальный и максимальный элемент. Потом второй раз бежим по циклу и смотрим если какая-то элемент равен минимуму, то следующий элемент ставим максимум. А по поводу не надо менять это всё хрень компьютер железный он всё стерпит.
Vladimir Abramovich
Vladimir Abramovich
8 061
lst = list(map(int, input().split()))
min_val = min(lst)

while True:
try:
idx = lst.index(min_val)
if idx == len(lst) - 1 or lst[idx+1] != max(lst[idx+1:]):
lst.insert(idx+1, max(lst[idx+1:]))
min_val = min(lst[idx+1:])
except ValueError:
break

print(*lst)
Ильяс .
Ильяс .
367