力扣191. 位1的个数

作者 : admin 本文共421个字,预计阅读时间需要2分钟 发布时间: 2024-06-17 共1人阅读

Problem: 191. 位1的个数

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

力扣191. 位1的个数插图力扣191. 位1的个数插图(1)

思路

题目规定数值的范围不会超过32位整形数

1.定义统计个数的变量oneCount;由于每次与给定数字求与的变量mask初始化为1
2.for循环从0~32,每一次拿mask与给定数字求与运算,若不为0则表示当前二进制位为1,oneCount++;
3.给定数字右移一位

复杂度

时间复杂度:

O

(

1

)

O(1)

O(1)

空间复杂度:

O

(

1

)

O(1)

O(1)

Code

class Solution {
    /**
     * Bit operation
     *
     * @param n Unsigned integer to be operated
     * @return int
     */
    public int hammingWeight(int n) {
        int oneCount = 0;
        int mask = 1;
        for (int i = 0; i < 32; ++i) {
            if ((n & mask) != 0) {
                oneCount++;
            }
            mask <<= 1;
        }
        return oneCount;
    }
}
本站无任何商业行为
个人在线分享-虚灵IT资料分享 » 力扣191. 位1的个数
E-->