题目:Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.
Example:
For num = 5 you should return [0,1,1,2,1,2].
能够找出规律,但是不知道从哪下手。之前对vector概念理解不深,声明都不会。
vector<int> v1(1, 0 ); //构造了一个包含1个值为0的元素的Vector.
参看http://blog.youkuaiyun.com/u014705854/article/details/50929980,马上领会,但是不太明白为什么是复杂度是nlogn。
有待考虑。。。这题先这样??
class Solution {
public:
vector<int> countBits(int num) {
//n*log(n)算法。
vector<int> a(num+1,0);
for(int i=0;i<=num;i++)
{
a[i]=a[i>>1]+i%2;
}
return a;
//返回的是一个容器
}
};