Najdłuższy spójny podciąg rosnący¶
Opis problemu¶
Implementacja¶
Funkcja longest_growing_substring_length
przyjmuje jako argument listę tab
(lista liczb) i zwraca długość najdłuższego rosnącego podciągu.
Na początku ustawiamy zmienne mx
i length
na \(1\). mx
będzie przechowywać maksymalną długość rosnącego podciągu, a length
aktualną długość bieżącego rosnącego podciągu.
W pętli for
iterujemy po indeksach od \(1\) do len(tab)-1
.
W każdej iteracji sprawdzamy, czy bieżący element tab[i]
jest większy od poprzedniego elementu tab[i-1]
. Jeśli tak, oznacza to, że podciąg się powiększa, więc inkrementujemy length
o \(1\).
Dodatkowo, jeśli length
jest większe od mx
, aktualizujemy mx
na length
, ponieważ znaleźliśmy dłuższy rosnący podciąg.
Jeśli bieżący element tab[i]
nie jest większy od poprzedniego elementu, oznacza to, że rosnący podciąg się kończy. Resetujemy length
na \(1\).
Po zakończeniu pętli, zwracamy wartość mx
, która reprezentuje długość najdłuższego rosnącego podciągu.
W przykładzie podana jest konkretna lista tab
. Funkcja longest_growing_substring_length
jest wywoływana z tą listą, a wynikowa długość najdłuższego rosnącego podciągu jest wyświetlana przy użyciu funkcji print
.
W wyniku wykonania tego kodu zostanie wyświetlona wartość \(4\), ponieważ najdłuższy rosnący podciąg to \([2, 4, 7, 9]\), który ma długość \(4\).