二进制 1个数
0 --> 0
1 --> 1
10 --> 1
11 --> 2
100 --> 1
101 --> 2
(2)剩余的数,为10(二进制),可以用5/2=2获得(即右移一位) 则5的bits等于2的bits加上1,即1+1=2.
class Solution:
def countBits(self, num: int) -> List[int]:
dp = [0] * (num+1)
if num == 0: #边界
return dp
#初始化
dp[0], dp[1] = 0, 1
for i in range(2, num+1):
dp[i] = dp[i//2] + i%2
return dp