191. 位1的个数

思路

利用十进制 1 (0000……001) 和 n 与运算,根据结果判断最低位的值。

  • 若结果为 0 ,则最低位为 0;
  • 若结果为 1 ,则最低位为 1; 将 n 右移后,继续与运算,然后判断。循环32次。

复杂度

时间复杂度:O(1)

空间复杂度:O(1)

代码

class Solution {
    /**
     * @param Integer $n
     * @return Integer
     */
    function hammingWeight($n) {
        $counter = 0;
        $mask = 1;
        for($i = 0; $i < 32; $i++) {
            if(($n & $mask) == 1) {
                $counter++;
            }
            $n = $n >> 1;
        }

        return $counter;
    }
}

results matching ""

    No results matching ""