leetcode刷题日记——Number of 1 Bits

来源:互联网 发布:学声乐的软件 编辑:程序博客网 时间:2024/06/08 11:20
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.

问题分析:题目所要实现的目标就是返回以32位保存的二进制整数中位为1的个数。解决此题的一个关键就是每次让n和n-1做&运算,每进行一步这个运算都会让n减少一个一,最终使得n变成0,因此我们需要记住把n变成0所需要执行的次数即为n中1的个数。实现代码如下:

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

0 0
原创粉丝点击