Menu
CoddyTech

Counting Bits

Otrzymujesz liczbę całkowitą n, która jest równa 0 lub większa. Dla każdej liczby i od 0 do n policz, ile jedynek pojawia się w zapisie binarnym liczby i. Zwróć wyniki jako tablicę zawierającą n+1 elementów, gdzie element i to liczba jedynek dla liczby i.

Funkcja

countBits(n: integer) → integer-array
ninteger
ostatnia liczba do odliczenia, 0 lub więcej
Zwracainteger-array
tablica n+1 liczników, gdzie element i to liczba bitów 1 w i

Ograniczenia

  • 0 ≤ n ≤ 2 × 104

Przykłady

Wejście
n = 2
Wyjście
[0, 1, 1]
Wyjaśnienie
W systemie binarnym 0 to 0, 1 to 1, a 2 to 10. To oznacza brak jedynek, potem jedną, a następnie jedną.

lock icon+15 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy potrafisz wypełnić całą tablicę w czasie O(n), bez wbudowanej funkcji zliczającej bity i bez zliczania każdej liczby od początku?

Zresetuj kod
def countBits(n):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Wejście

n = 2

Oczekiwane

[0, 1, 1]