Python. Простые алгоритмы
- Python. Простые алгоритмы
- Просмотров: 489
8. Первый и последний максимальный/минимальный элемент
Способ 1. Использование цикла for и функции range()
# 0 1 2 3 4 5 6 7 <- индексы
a= [16, 19, 20, 1, 20, 18, 20, 18] # <- список
mx = a[0]
imx1 = 0
imx2 = 0
for i in range(1,len(a)):
if a[i] > mx: # это первый максимум 20 2
mx = a[i]
imx1 = i
elif a[i] == mx: # это последний максимум 20 6
imx2 = i
print (mx, imx1, imx2) # 20 2 или 20 6
# 20 2 6
Временная сложность: O(n),
Способ 2. Использование функции max() и срезов
# Первый максимум 20 2
print(max(a), a.index(max(a)))
# Последний максимум 20 6
print(max(a), len(a)- 1 - a[::-1].index(max(a) ))
# 20 2
# 20 6
Временная сложность: O (1)