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