У меня есть список [1,3,4,5,2,7,8,9,11,10,9,8,7,6,7,8]
, в этом случае у нас может быть последовательность вроде [1,3,4,5],[7,8,9,11], [11,10,9,8,7,6]
, поэтому мне нужно написать логику, чтобы найти самую длинную последовательность подсписок (последняя в примере). Список будет положительным целым числом, но может быть любым порядком (asc, desc).найти самый длинный последовательный подсписок из списка, используя python
Ok вот моя попытка найти по возрастанию последовательность заказа и, вероятно, работает:
l = [1,3,4,3,2,1,7,8,9,11,12,12,8,7,6,7,8]
ll = []
temp = l[0]
ll.append(l[0])
keyval = {}
for x in range(1,len(l)):
#print (str(x)+ " :"+str(l[x]))
if l[x] >= temp :
ll.append(l[x])
temp = l[x]
#print (ll)
else:
keyval[len(ll)] = ll
ll=[]
temp = l[x]
max_key = max(keyval.keys())
print (keyval[max_key])
выход: [7, 8, 9, 11, 12, 12]
Но я не найти логики для интеграции для последовательности порядка desc. Pls помочь
и наши собственные попытки? :) –
Вы можете узнать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и создать [Минимальный, Полный и Подтверждаемый] (http://stackoverflow.com/help/mcve). Это облегчает нам помощь. –
Не в состоянии думать о правильной логике, я могу опубликовать какую-то программу, но это не достойно этого. –