class Solution:
def countBits(self, num):
"""
:type num: int
:rtype: List[int]
"""
# 右移一位(之前计算的记录下来)+ 末尾是否是1
num += 1
# 初始条件dp[0] = 0
dp = [0] * num
for i in range(1, num):
# 状态转移方程
dp[i] = dp[i >> 1] + (i & 1)
return dp