给定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
posted on 2018-11-06 21:32 JASONlee3 阅读(104) 评论(0) 编辑 收藏 举报