Menu
CoddyTech

Counting Bits

Dla danej liczby całkowitej n, która jest równa 0 lub większa, zwróć tablicę zawierającą n+1 elementów, w której element i jest liczbą jedynek w binarnym zapisie liczby i, dla każdej wartości i od 0 do n.

Funkcja

countBits(n: integer) → integer-array
ninteger
ostatnia liczba do zliczenia, 0 lub więcej
Zwracainteger-array
tablica n+1 liczników, gdzie element i jest liczbą bitów o wartości 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: brak jedynek, potem jedna, a następnie jedna.
challenge icon

Pytanie dodatkowe

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

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

Test #1

Test #2

Argument

n = 2

Oczekiwany wynik

[0, 1, 1]