Bit Manipulation, Easy
Question
Write a function that takes an unsigned integer and returns the number of ‘1’ bits it has (also known as the Hamming weight).
Example 1:
1 2 3
|
Input: 11 Output: 3 Explanation: Integer 11 has binary representation 00000000000000000000000000001011
|
Example 2:
1 2 3
|
Input: 128 Output: 1 Explanation: Integer 128 has binary representation 00000000000000000000000010000000
|
My Answer
1 2 3 4 5 6 7 8 9 10 11
|
public class { public int hammingWeight(int n) { int res=0; while(n!=0){ n = n & (n-1); res++; } return res; } }
|
Running time: O(n), n is the length of the given number, 3ms
Other Answer
1 2 3 4 5 6 7 8 9 10 11
|
public class { public int hammingWeight(int n) { int res=0; while(n!=0){ res += n & 1; n = n >>> 1; } return res; } }
|
Running time: O(n), n is the length of the given number, 3ms
近期评论