File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ var countBits = function ( n ) {
2
+ // Create array which has 0 element length of n
3
+ const dp = new Array ( n + 1 ) . fill ( 0 ) ;
4
+ let offset = 1 ;
5
+
6
+ for ( let i = 1 ; i <= n ; i ++ ) {
7
+ if ( offset * 2 === i ) offset = i ;
8
+ dp [ i ] = 1 + dp [ i - offset ] ;
9
+ }
10
+ return dp ;
11
+ } ;
12
+
13
+ /**
14
+ 0 -> 0000 -> dp[0] = 0
15
+ 1 -> 0001 -> dp[1] = 1 + dp[1-1] = 1
16
+ 2 -> 0010 -> dp[2] = 1 + dp[2-2] = 1
17
+ 3 -> 0011 -> dp[3] = 1 + dp[3-2] = 2
18
+ 4 -> 0100 -> dp[4] = 1 + dp[4-4] = 1
19
+ 5 -> 0101 -> dp[5] = 1 + dp[5-4] = 2
20
+ 6 -> 0110 -> dp[6] = 1 + dp[6-4] = 2
21
+ 7 -> 0111 -> dp[7] = 1 + dp[7-4] = 3
22
+ 8 -> 1000 -> dp[8] = 1 + dp[8-8] = 1
23
+ */
24
+
25
+ // TC: O(n)
26
+ // SC: O(1)
Original file line number Diff line number Diff line change
1
+ var hammingWeight = function ( n ) {
2
+ let count = 0 ;
3
+ while ( n ) {
4
+ // Check rightmost bit is equal to 1 by using bitwise AND operator
5
+ count += n & 1 ;
6
+ // Remove rightmost bit from n by using right shift operator
7
+ n >>= 1 ;
8
+ }
9
+ return count ;
10
+ } ;
11
+
12
+ // TC: O(1) -> The worst case of 32-integer would be O(32)
13
+ // SC: O(1)
You can’t perform that action at this time.
0 commit comments