191. Number of 1 Bits
Write a function that takes an unsigned integer and return the number of ‘1‘ bits it has (also known as the Hamming weight).
Example 1:
Input: 00000000000000000000000000001011
Output: 3
Explanation: The input binary string 00000000000000000000000000001011 has a total of three ‘1‘ bits.
Example 2:
Input: 00000000000000000000000010000000 Output: 1 Explanation: The input binary string 00000000000000000000000010000000 has a total of one ‘1‘ bit.
Example 3:
Input: 11111111111111111111111111111101 Output: 31 Explanation: The input binary string 11111111111111111111111111111101 has a total of thirty one ‘1‘ bits.
Note:
-3
.
Follow up:
If this function is called many times, how would you optimize it?
package leetcode.easy; public class NumberOf1Bits { // you need to treat n as an unsigned value public int hammingWeight1(int n) { int bits = 0; int mask = 1; for (int i = 0; i < 32; i++) { if ((n & mask) != 0) { bits++; } mask <<= 1; } return bits; } public int hammingWeight2(int n) { int sum = 0; while (n != 0) { sum++; n &= (n - 1); } return sum; } @org.junit.Test public void test() { System.out.println(hammingWeight1(-3)); System.out.println(hammingWeight2(-3)); } }
LeetCode_191. Number of 1 Bits
原文:https://www.cnblogs.com/denggelin/p/11706513.html