其他分享
首页 > 其他分享> > 338. 比特位计数

338. 比特位计数

作者:互联网

  1. 奇数:二进制表示中,奇数一定比前面那个偶数多一个 1,因为多的就是最低位的 1。
  2. 偶数:二进制表示中,偶数中 1 的个数一定和除以 2 之后的那个数一样多。因为最低位是 0,除以 2 就是右移一位,也就是把那个 0 抹掉而已,所以 1 的个数是不变的。
	vector<int> countBits(int n) 
    {
		vector<int> res(n+1, 0);
		for(int i = 1; i <= n; ++i)
		{
			if(i % 2 == 1)
			{
				res[i] = res[i-1] + 1;
			}
			else
			{
				res[i] = res[i/2];
			}
		}
		return res;
    }

标签:338,比特,二进制,res,个数,偶数,计数,int,vector
来源: https://blog.csdn.net/qq_43287931/article/details/120968082