461. 汉明距离
描述
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x
和 y
,计算并返回它们之间的汉明距离。
链接
461. 汉明距离 - 力扣(LeetCode) (leetcode-cn.com)
解法:位运算yyds
大致思路: 通过 异或运算,得到 不同值 的位置(用1表示的);再 通过 右移计算,进行计数。
1 class Solution { 2 public int hammingDistance(int x, int y) { 3 int tmp = x ^ y, res = 0; 4 while (tmp != 0) { 5 res += tmp & 1; 6 tmp >>= 1; 7 } 8 return res; 9 } 10 }