【剑指15】二进制中1的个数

方法一:位运算:时间O(1),空间O(1)

题解:

  1. 利用位运算每 n & (n - 1) 一次,可清除一次二进位地位的1
    在这里插入图片描述
class Solution {
    
    
public:
    int hammingWeight(uint32_t n) 
    {
    
    
        // 1.位运算
        int res = 0;
        while (n)
        {
    
    
            res++;
            n = n & (n - 1);
        }
        return  res;   
    }
};

猜你喜欢

转载自blog.csdn.net/qq_45691748/article/details/112531169