问题:给出数字n,求0-n这些数的1的位数。
思路:方法一使用x&(x-1)统计数字1的位数。
方法二[0,1)
[2,3)表示形式为[10,11)
[4,8)表示形式为[100,101, 110,111)
方法三根据最低位作动态规划dp(x)=dp(x/2)+x%2
方法四根据最低设置位来作动态规划dp(x)=dp(x&(x-1)) + 1
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/Counting%20Bits