File tree 2 files changed +40
-0
lines changed
javascript/algorithms/binary
2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change
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 number Diff line number Diff line change
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 ) ) ;
You can’t perform that action at this time.
0 commit comments