a_ko_si_ti I meni se cini da je najbolje O(n) memorijski.
A sto se tice vremena, mislim da mozes drzati countove zadnjih n vrijednosti u cacheu. Memorijski je to najvise 2*n brojeva, što bi značilo da ukupno držimo 3n brojeva, ali to je i dalje O(n). Onda bi vremenski imao O(1) za upit i O(1) za update cachea, ako countove drzis u hash tablici.