Найти элементы, которые больше всех предыдущих элементов
Всем привет, есть задание "Найти элементы, которые больше всех предыдущих элементов списка), никак не могу допереть как обращаться сразу ко всем предыдущим элементам, а не к одному. Подскажите как можно решить это задание.
import random
newlist = []
testlist = []
a=1
b=300
def list_create():
for i in range(1, 30):
newlist.append(random.randint(a,b))
print(newlist)
list_create()
Ответы (3 шт):
Вообще не нужно обращаться ко всем предыдущим элементам, достаточно хранить одно число - максимальный элемент из предыдущих.
import random
newlist = []
testlist = []
a=1
b=300
def list_create():
for i in range(1, 30):
newlist.append(random.randint(a,b))
return newlist
list_ = list_create()
for i in range(1, len(list_)):
if max(list_[:i]) < list_[i]:
print(list_[i])
с помощью list_[:x] перем все предыдущие элементы и находим максимум
более эффективный вариант
import random
newlist = []
testlist = []
a=1
b=300
def list_create():
for i in range(1, 30):
newlist.append(random.randint(a,b))
return newlist
list_ = list_create()
max_ = list_[0]
for el in list_[1:]:
if max_ < el:
print(el)
max_ = el
идите по массиву слева направо
определяйте максимальный элемент
если максимальный элемент - это текущий элемент, выводите элемент как максимальный из текущих
но вы должны понимать, что в последовательности 1, 2, 3, 4, 5, 6, 7 будет выводиться 2, 3, 4, 5, 6, 7
но это соответствует вашему условию
которые больше всех предыдущих элементов