Python. Простые алгоритмы
- Python. Простые алгоритмы
- Просмотров: 1850
10. Поиск наибольшего четного и нечетного чисел в списке
Дан список:
a= [1,2,3,4,5,6,7,8,9,0]
Способ №1. Использование генератора списка и функции max():
mx1 = max([x for x in a if x%2==0])
mx2 = max([x for x in a if x%2!=0])
print("max четное", mx1)
print("max нечетное", mx2)
# max четное 8
# max нечетное 9
Временная сложность: O (n)
Способ №2. Использование функции filter()
mx1 = max(list(filter(lambda x: x %2 == 0, a)))
mx2 = max(list(filter(lambda x: x %2 != 0, a)))
print("max четное", mx1)
print("max нечетное", mx2)
# max четное 8
# max нечетное 9
Временная сложность: O (n)
Способ №3 использование функции enumerate()
mx1 = max([x for i, x in enumerate(a) if x%2==0])
mx2 = max([x for i, x in enumerate(a) if x%2!=0])
print("max четное", mx1)
print("max нечетное", mx2)
# max четное 8
# max нечетное 9
Временная сложность: O (n)
Способ 4. Использование цикла for
mx1 = a[0]
mx2 = a[0]
for x in a:
if x % 2 == 0 and x > mx1:
mx1 = x
elif x % 2 != 0 and x > mx2:
mx2 = x
print("max четное", mx1)
print("max нечетное", mx2)
# max четное 8
# max нечетное 9
Временная сложность: O (n)