Annettuna on lista, jossa on n kokonaislukua. Tehtäväsi on laskea, montako pisintä nousevaa alijonoa listassa on.
Esimerkiksi listassa [4,1,5,6,3,4,3,8] pisin nouseva alijono sisältää neljä lukua. Mahdolliset alijonot ovat [1,3,4,8], [1,5,6,8] ja [4,5,6,8]. Tälle listalle haluttu vastaus on siis 3.
Toteuta tiedostoon countlis.py
funktio count_sequences
, jolle annetaan lista kokonaislukuja. Funktion tulee palauttaa pisimpien nousevien alijonojen määrä.
Funktion tulee toimia tehokkaasti, kun 1 \le n \le 100.
def count_sequences(numbers): # TODO if __name__ == "__main__": print(count_sequences([1, 2, 3])) # 1 print(count_sequences([3, 2, 1])) # 3 print(count_sequences([1, 1, 1, 1, 1])) # 5 print(count_sequences([1, 8, 2, 7, 3, 6])) # 1 print(count_sequences([1, 1, 2, 2, 3, 3])) # 8 print(count_sequences([4, 1, 5, 6, 3, 4, 3, 8])) # 3