Это был вопрос интервью. Оригинальные вопросы задают:
Учитывая положительное целое число N, подсчитайте число 1 в каждом целом от 0 до N и верните счет в массиве размером N + 1. Сделайте это в O (n) времени.
Пример:
Учитывая 7, верните [0, 1, 1, 2, 1, 2, 2, 3]
Конечно, самый простой способ - создать подсчет цикла 1 для каждого целого числа, но это будет O (kn) время, где k - размер целых чисел в битах. Таким образом, либо существует способ подсчета числа 1 целого числа в O (1), либо есть способ напрямую генерировать счетчик, идущий от 0 до N. Я уверен, что оба метода существуют, но не могут понять либо.