Ctrl K

Единицы в каждом числе

Лёгкая
Дано целое limit. Для каждого числа от 0 до limit включительно посчитайте, сколько единиц в его двоичной записи. Верните список длины limit + 1, где на позиции i стоит количество единиц в числе i. Решение, которое считает биты каждого числа заново, работает за O(n log n). Попробуйте за O(n), без встроенного подсчёта битов.
Пример 1
limit=4 → [0, 1, 1, 2, 1]

0 → 0, 1 → 1, 2 → 10, 3 → 11, 4 → 100. Единиц: 0, 1, 1, 2, 1.

Пример 2
limit=7 → [0, 1, 1, 2, 1, 2, 2, 3]

Добавляются 5 → 101, 6 → 110, 7 → 111: 2, 2, 3.

Пример 3
limit=0 → [0]
Ограничения
  • 0 ≤ limit ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиГрафические ключи на девяти точках СредняяСпуск до единицы СредняяГонка из общей кучки чисел СредняяКак рассчитаться за меньше переводов СложнаяКвадратная рамка из палочек Средняя
загружаем Python…
Вход
limit=4
Ожидается
[0, 1, 1, 2, 1]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 36 тестов на сервере, включая скрытые.