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 |
|