Saat syötteenä listan, joka sisältää luvut 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 osajono on vuorotteleva, koska , ja . Yhden tai kahden alkion osajono on aina vuorotteleva.
Algoritmin aikavaativuuden tulee olla .
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