leetcode之number of 1 bits

来源:互联网 发布:动作数据在n站 编辑:程序博客网 时间:2024/06/14 21:00

题目:

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.

解答

例子:a = 10001000

其中,a - 1变成10000111 a&(a-1) 变成10000000,再这样运算一次就可以结束,看了这个例子,思想也就理解了,复杂度是O(t)t是1的个数

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int res = 0;
        while(n)
        {
            n = n & (n - 1);
            res ++;
        }
        return res;
    }
};

0 0
原创粉丝点击