leetcode-191- Number of 1 Bits

来源:互联网 发布:淘宝药品需求清单 编辑:程序博客网 时间:2024/05/22 15:32

问题

题目:[leetcode-191]

思路

比较简单,移位操作。转化为位向量去做。

代码

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

当然,这个题还有更妙的答案。

思路

n&(n-1)的妙用

代码

/*n&n-1的妙用。n与n-1的区别在于,对于n,最低位1开始一直到右,和n-1,完全相反n   = 10-100n-1 = 10-011因此,n&n-1可以把n的最低位1变成0*/class Solution {public:    int hammingWeight(uint32_t n) {        int cnt = 0;        while( n )        {            ++cnt;            n &= n-1;        }        return cnt;    }};
0 0
原创粉丝点击