Wyobraźmy sobie, że otrzymujemy kawałek jakiegoś górzystego regionu, co dałoby kształt podobny do tego:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
Jak widzimy, możemy to przedstawić (do pewnego stopnia) za pomocą sekwencji liczb całkowitych.
Na potrzeby tego wyzwania definiujemy dolinę jako ciągłą podsekwencję, w której wartości początkowo maleją, a od pewnego momentu rosną. Bardziej formalnie dla sekwencji doliną będą indeksy dla których:
- punkt początkowy i końcowy doliny są takie same:
- dolina zaczyna się i kończy, gdy region obniży się:
- dolina nie jest płaska:
- dolina początkowo zmniejsza się:
- dolina w pewnym momencie wzrośnie:
Teraz definiujemy szerokość takiej doliny jako wielkość wskaźników , tj. .
Wyzwanie
Biorąc pod uwagę profil wysokości (sekwencja liczb całkowitych nieujemnych), Twoim zadaniem jest określenie szerokości najszerszej doliny.
Przykład
Biorąc pod uwagę profil wysokości [1,2,3,2,2,2,2,3,2,1,0,0,1,2,2,3,3,3,4,3,2,2,1,1,1,2], możemy go wizualizować jak poprzednio:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
aaaaaa ccccc
bbbbbbbbb
Zwróć uwagę, że druga dolina [3,2,1,0,0,1,2,2,3]nie rozciąga się bardziej na prawo, ponieważ skrajnie lewy punkt to a nie . Ponadto nie dodajemy pozostałych dwóch s, ponieważ wymagamy, aby punkt końcowy był wyżej niż punkt przedostatni.
Dlatego szerokość najszerszej doliny wynosi .
Zasady
- Dane wejściowe będą ciągiem liczb całkowitych nieujemnych (przepraszam Holendrów)
- możesz założyć, że zawsze jest co najmniej jedna dolina
- Wyjściowy będzie rozmiar najszerszej doliny, jak zdefiniowano powyżej
Przypadki testowe
[4,0,4] -> 3
[1,0,1,0,1] -> 3
[1,0,2,0,1,2] -> 4
[13,13,13,2,2,1,0,1,14,2,13,14] -> 4
[1,2,3,2,2,2,2,3,2,1,0,0,1,2,2,3,3,3,4,3,2,2,1,1,1,2] -> 9
[3,2,0,1,0,0,1,3] -> 4
[3,1,2,3])
[4,0,4]byłby taki przypadek.
[3,2,0,1,0,0,1,3]. Wszystkie aktualne odpowiedzi zwracają 8, zgodnie z twoją definicją uważam, że powinna to być 4.