针对461 汉明距离,一看到,就应该想到位运算,而它的基础是二进制,以及反码,补码,及其运算
对于python
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
return bin(x ^ y).count('1')
注意,count,参数是字符串。
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
k = x ^ y
a = 0
while k:
a += 1
k = k & (k - 1)
return a
k = k & (k - 1) 布赖恩·克尼根算法.
最重要的理解,查表法,哈希字典。
以及沈剑大神,提到的,两次查表法。减少内存占用。
网友评论