Oii Eson, tudo bem?
Para resolver esse problema, podemos comparar se o número anterior é menor do que o número atual e caso seja, temos uma possibilidade de sequência. Ao final, teremos todas as possíveis sequências e para descobrir a maior, podemos utilizar a função max e passar como chave o tamanho (len) da lista. Veja na prática como fica em código:
def descobre_sequencia(numeros):
resultado = [[numeros[0]]]
for i in range(1, len(numeros)):
if numeros[i-1] < numeros[i]:
resultado[-1].append(numeros[i])
else:
resultado.append([numeros[i]])
return resultado
def procura_maior_tamanho(lst):
valor_da_lista = max(lst, key = lambda i: len(i))
tamanho_da_lista = len(valor_da_lista)
return valor_da_lista, tamanho_da_lista
lista_de_numeros = [43, 27, 28, 40, 43, 23, 29, 47, 37, 2, 14, 14, 18, 4, 27, 36, 24, 31,42, 29]
sequencias_crescente = descobre_sequencia(lista_de_numeros)
print(f"Todas as sequências = {sequencias_crescente}")
sequencia, maior_tamanho = procura_maior_tamanho(sequencias_crescente)
print(f"O maior tamanho = {maior_tamanho}")
print(f"A sequencia é = {sequencia}")
Resultado:
Todas as sequências = [[43], [27, 28, 40, 43], [23, 29, 47], [37], [2, 14], [14, 18], [4, 27, 36], [24, 31, 42], [29]]
O maior tamanho = 4
A sequencia é = [27, 28, 40, 43]
Com esse código, temos um pontapé inicial. Não é a única forma de resolver, é apenas uma das possíveis maneiras de se chegar a solução. Recomendo que você faça testes de mesa, use prints ao longo do código ou até mesmo use o recurso de depuração dentro de uma IDE para entender a fundo o que cada linha está fazendo.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!