LeetCode-338-比特位计数

2020-10-05  本文已影响0人  阿凯被注册了
image.png

解题思路:

  1. 枚举:

dp[0]=0; dp[1]=1;
dp[2]=1; dp[3]=2;
dp[4]=1; dp[5]=2;
dp[6]=2; dp[7]=3;
dp[8]=1; dp[9]=2;
dp[10]=2; dp[11]=3;

  1. 归纳数字的二进制属性:

Python3代码

class Solution:
    def countBits(self, num: int) -> List[int]:
        dp = [0] * (num+1)
        for i in range(1, num+1):
            if i % 2 == 1:
                dp[i]=dp[i-1]+1
            else:
                dp[i] = dp[int(i/2)]
        return dp
上一篇下一篇

猜你喜欢

热点阅读