算法复习:位运算
Posted dzzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法复习:位运算相关的知识,希望对你有一定的参考价值。
leetcode 191. 位1的个数
维护匹配串 从1开始逐位移动比较
class Solution { public: int hammingWeight(uint32_t n) { // uint32_t为32位无符号类型数据 int count=0; uint32_t donser=1; for(int i=0;i<32;i++) { if((n&donser)>=1) count++; donser<<=1; } return count; } };
n与n-1取&
class Solution { public: int hammingWeight(uint32_t n) { int count=0; while(n) { n=n&(n-1); count++; } return count; } };
调用内置函数 __builtin_popcount(n)
class Solution { public: int hammingWeight(uint32_t n) { // uint32_t为32位无符号类型数据 return __builtin_popcount(n); } };
以上是关于算法复习:位运算的主要内容,如果未能解决你的问题,请参考以下文章