给定num,用O(num)的时间复杂度计算0--num中所有数的二进制表示中1的个数。
vector<int> countBits(int num) { vector<int> dp(num+1,0); for(int i=1;i<=num;i++) dp[i]=dp[i&(i-1)]+1; return dp; }
i&(i-1)<=i-1
给定num,用O(num)的时间复杂度计算0--num中所有数的二进制表示中1的个数。
vector<int> countBits(int num) { vector<int> dp(num+1,0); for(int i=1;i<=num;i++) dp[i]=dp[i&(i-1)]+1; return dp; }
i&(i-1)<=i-1