Najdłuższy spójny podciąg niemalejący

Podciągi o zadanych własnościach - Algorytmy: zakres rozszerzony (Python)

**Spójny podciąg** to fragment ciągu bez przerw. Jednym przejściem liczymy długość bieżącego fragmentu niemalejącego: rośnie, gdy kolejny element nie jest mniejszy od poprzedniego, a w przeciwnym razie zaczyna się od nowa. Zapamiętujemy najlepszy wynik i miejsce, w którym się kończy.

data = [3, 5, 5, 2, 4, 6, 7, 7, 1, 8]
best_length = 1
best_end = 0
length = 1
for i in range(1, len(data)):
    if data[i] >= data[i - 1]:
        length += 1
    else:
        length = 1
    if length > best_length:
        best_length = length
        best_end = i
start = best_end - best_length + 1
print("długość:", best_length)
print("podciąg:", data[start:best_end + 1])

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Algorytmy: zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.