剑指 Offer 15. 二进制中1的个数

107 阅读1分钟

题目链接

按位查找

class Solution:
    def hammingWeight(self, n: int) -> int:
        ans = 0
        while n:
            if n & 1 == 1:
                ans += 1
            n >>= 1
        return ans

利用二进制特性

dfxL90.md.png

class Solution:
    def hammingWeight(self, n: int) -> int:
        ans = 0
        while n:
            n = n & (n-1)
            ans += 1
        return ans