Write a function that takes the binary representation of a positive integer and returns the number of set bits it has (also known as the Hamming weight).
Input: n = 11
Output: 3
Explanation:
The input binary string 1011 has a total of three set bits.
Input: n = 128
Output: 1
Explanation:
The input binary string 10000000 has a total of one set bit.
Input: n = 2147483645
Output: 30
Explanation:
The input binary string 1111111111111111111111111111101 has a total of thirty set bits.
If this function is called many times, how would you optimize it?
class Solution {
int hammingWeight(int n)
{
int cnt = 0;
while (n >= 1)
{
cnt = (n % 2 == 1) ? cnt+1 : cnt;
n /= 2;
}
return cnt;
}
};