leetcode url
Solutions
Brute Force
int numOfBits(int n) {
int counts = 0;
while (n != 0) {
n = n & (n - 1);
counts += 1;
}
return counts;
}
vector<int> countBits(int n) {
vector<int> arr;
for (int i = 0; i <= n; ++i) {
arr.push_back(numOfBits(i));
}
return ret;
}
Analysis
Kind |
Complexity |
Time |
|
Space |
|
Optimal Method
Use dynamic programming approach
.
vector<int> coountBits(int n) {
vector<int> ret;
ret.push_back(0);
for (int i = 1; i <= n; ++i) {
ret.push_back(ret[i >> 2] + (i & 1));
}
return ret;
}
Analysis
Kind |
Complexity |
Time |
|
Space |
|