Brian Kernighan算法,也被称为布莱恩·柯林汉算法,是一种用于统计二进制中位数为1的个数的高效算法。该算法通过不断清除二进制数中最右侧的1来计算1的个数,直到二进制数变为0为止。
# 461. 汉明距离
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
s = x ^ y
ans = 0
while s != 0:
s &= s-1
ans += 1
return ans
# 201. 数字范围按位与
class Solution:
def rangeBitwiseAnd(self, left: int, right: int) -> int:
while left < right:
right &= (right-1)
return right