Menu
CoddyTech

Counting Bits

给定一个大于或等于 0 的整数 n,返回一个包含 n+1 个元素的数组,其中对于从 0 到 n 的每个 i,元素 i 的值是 i 的二进制形式中 1 的个数。

函数

countBits(n: integer) → integer-array
ninteger
要计数的最后一个数字,0 或更大
返回值integer-array
一个包含 n+1 个计数值的数组,其中第 i 项是 i 中 1 位的数量

约束条件

  • 0 ≤ n ≤ 2 × 104

示例

输入
n = 2
输出
[0, 1, 1]
解释
在二进制中,0 是 0,1 是 1,2 是 10:没有 1,然后有一个,再然后有一个。
challenge icon

进阶

你能否在 O(n) 时间内填充整个数组,不使用内置的位计数函数,也不从头开始统计每个数字的位数?

重置代码
def countBits(n):
    # 在这里编写代码

测试 #1

测试 #2

参数

n = 2

预期输出

[0, 1, 1]