代码拉取完成,页面将自动刷新
/* 每个数向右移1位(除以2)后,
二进制表示里的'1'的个数要么与原来相等(偶数,末位是'0'),
要么少了一个(奇数,末位是'1')。
所以在程序循环中,若计算array[i]的'1'的个数,因为之前已经计算过array[i/2],
此时只需判断array[i]的奇偶性,就可以计算array[i]的'1'的个了。
*/
class Solution {
public:
vector<int> countBits(int num)
{
vector<int> results = vector<int>(num+1, 0);
for(int i=1;i<=num;i++)
{
results[i] = results[ i >> 1 ] + (i & 1);
}
return results;
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。