Skip to content

Commit e3674cd

Browse files
committed
Add counting bits solution
1 parent 2534ebd commit e3674cd

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Dynamic programming pattern:- TC:O(n) SC:O(n)
2+
package java1.algorithms.binary;
3+
4+
import java.util.Arrays;
5+
6+
public class CountingBits {
7+
private static int[] countingBits(int n) {
8+
int[] dp = new int[n+1];
9+
dp[0] = 0;
10+
int offset = 1;
11+
for(int i=1; i< n+1; i++) {
12+
if(offset * 2 == i) {
13+
offset = i;
14+
}
15+
dp[i] = 1+ dp[i-offset];
16+
}
17+
return dp;
18+
}
19+
20+
public static void main(String[] args) {
21+
int num = 3;
22+
System.err.println(Arrays.toString(countingBits(num)));
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Dynamic programming:- TC:O(n) SC:O(n)
2+
3+
function countingBits(num) {
4+
let dp = new Array(num+1).fill(0);
5+
let offset = 1;
6+
for(let i=1; i< num+1; i++) {
7+
if(offset * 2 === i) {
8+
offset = i;
9+
}
10+
dp[i] = 1 +dp[i-offset];
11+
}
12+
return dp;
13+
}
14+
15+
let num = 3;
16+
console.log(countingBits(num));

0 commit comments

Comments
 (0)