Saat syötteenä listan, joka sisältää luvut 1 \dots n jossain järjestyksessä. Tehtäväsi on laskea listan vuorottelevien osajonojen lukumäärä.
Tässä vuorotteleva tarkoittaa sitä, että osajonossa seuraava luku on aina vuorotellen pienempi tai suurempi kuin edellinen. Esimerkiksi listan [1,4,5,2,7,3,6] osajono [5,2,7,3] on vuorotteleva, koska 5>2, 2<7 ja 7>3. Yhden tai kahden alkion osajono on aina vuorotteleva.
Algoritmin aikavaativuuden tulee olla O(n).
Toteuta tiedostoon alternation.py
funktio count
, joka palauttaa vuorottelevien osajonojen lukumäärän.
def count(t): # TODO if __name__ == "__main__": print(count([1,2,3,4])) # 7 print(count([1,4,2,5,3])) # 15 print(count([7,2,1,3,5,4,6])) # 17 print(count([1,4,5,2,7,3,6])) # 23