Menu
CoddyTech

Counting Bits

Для заданного целого числа n, которое не меньше 0, верните массив из n+1 элементов, где элемент i — это количество единиц в двоичной записи числа i для каждого i от 0 до n.

Функция

countBits(n: integer) → integer-array
ninteger
последнее число для отсчёта, 0 или больше
Возвращаетinteger-array
массив из n+1 счётчиков, где элемент i — это количество битов 1 в i

Ограничения

  • 0 ≤ n ≤ 2 × 104

Примеры

Ввод
n = 2
Вывод
[0, 1, 1]
Пояснение
В двоичной системе 0 — это 0, 1 — это 1, а 2 — это 10: ни одной единицы, затем одна, затем одна.
challenge icon

Дополнительный вопрос

Можешь заполнить весь массив за время O(n), не используя встроенную функцию для подсчёта битов и не пересчитывая каждый номер с нуля?

Сбросить код
def countBits(n):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

n = 2

Ожидаемый вывод

[0, 1, 1]