Menu
CoddyTech

Counting Bits

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

Функция

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. То есть сначала ни одной 1, затем одна, затем одна.

lock icon+15 скрытых тестов при отправке

challenge icon

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

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

Сбросить код
def countBits(n):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Ввод

n = 2

Ожидается

[0, 1, 1]