LeetCode 461. 汉明距离

矫情吗;* 2022-12-20 11:12 255阅读 0赞

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。

注意:
0 ≤ x, y < 231.

利用x & x-1相当于去掉最低位的1即可:

  1. class Solution {
  2. public:
  3. int hammingDistance(int x, int y) {
  4. int xorRes = x ^ y;
  5. int cnt = 0;
  6. while(xorRes) {
  7. xorRes &= xorRes - 1;
  8. ++cnt;
  9. }
  10. return cnt;
  11. }
  12. };

发表评论

表情:
评论列表 (有 0 条评论,255人围观)

还没有评论,来说两句吧...

相关阅读

    相关 LeetCode 461. 距离

    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 利用

    相关 461. 距离

    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 示例