《LeetCode之每日一题》:44.位1的个数
Posted 是七喜呀!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《LeetCode之每日一题》:44.位1的个数相关的知识,希望对你有一定的参考价值。
题目链接: 位1的个数
有关题目
题解
法一:内置位计数函数
class Solution {
public:
int hammingWeight(uint32_t n) {
return __builtin_popcount(n);
}
};
法二:循环检查二进制位
class Solution {
public:
int hammingWeight(uint32_t n) {
int count = 0;
int i = 0;
while(i < 32)
{
if ((n >> i) & 1)//n & (1 << i)
count++;
i++;
}
return count;
}
};
法三:位运算优化
class Solution {
public:
int hammingWeight(uint32_t n) {
int count = 0;
while(n)
{
count++;
n &= n - 1;
}
return count;
}
};
以上是关于《LeetCode之每日一题》:44.位1的个数的主要内容,如果未能解决你的问题,请参考以下文章
《LeetCode之每日一题》:239.最大连续 1 的个数
《LeetCode之每日一题》:154.最长递增子序列的个数