Skip to content

Commit cec6d45

Browse files
committed
feat: counting bits
1 parent f5b7405 commit cec6d45

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

counting-bits/gwbaik9717.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Time complexity: O(n)
2+
// Space complexity: O(n)
3+
4+
/**
5+
* @param {number} n
6+
* @return {number[]}
7+
*/
8+
var countBits = function (n) {
9+
const dp = Array.from({ length: n + 1 }, () => 0);
10+
11+
if (n === 0) {
12+
return dp;
13+
}
14+
15+
dp[1] = 1;
16+
17+
for (let i = 2; i <= n; i++) {
18+
const k = Math.floor(Math.log2(i));
19+
20+
dp[i] = 1 + dp[i - Math.pow(2, k)];
21+
}
22+
23+
return dp;
24+
};

0 commit comments

Comments
 (0)