lc面试准备:Number of 1 Bits

1 题目

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

接口

public int hammingWeight(int n);

2 思路

统计出一个数用二进制表示的时候,里面'1'的个数。

Reverse Bits思路一样,位运算。

复杂度

Time: O(n)  Space: O(1)

3 代码

1     public int hammingWeight(int n) {
2         int res = 0;
3         for (int i = 0; i < 32; i++) {
4             final int bit = (n >> i) & 1;
5             res += bit;
6         }
7         return res;
8     }

4 总结

Reverse Bits思路一样。

参考

  1. leetcode
  2. Leetcode: Number of 1 Bits
原文地址:https://www.cnblogs.com/byrhuangqiang/p/4399371.html