LeetCode:461. Hamming Distance(汉明距离)

梦里梦外; 2022-04-13 11:08 274阅读 0赞

文章最前: 我是Octopus,这个名字来源于我的中文名—章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

相关文章:

  1. LeetCode:55. Jump Game(跳远比赛)
  2. Leetcode:300. Longest Increasing Subsequence(最大增长序列)
  3. LeetCode:560. Subarray Sum Equals K(找出数组中连续子串和等于k)

文章目录:

题目描述:

java实现方法1:

python实现方法1:

源码地址


题目描述:

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

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

注意:
0 ≤ x, y < 231.

示例:

  1. 输入: x = 1, y = 4
  2. 输出: 2
  3. 解释:
  4. 1 (0 0 0 1)
  5. 4 (0 1 0 0)
  6. 上面的箭头指出了对应二进制位不同的位置。

java实现方法1:

  1. /**
  2. * 计算汉明距离
  3. *
  4. * @param x 值1
  5. * @param y 值2
  6. * @return 距离
  7. */
  8. private int hammingDistance2(int x, int y) {
  9. int c = x ^ y;
  10. int res = 0;
  11. while (c > 0) {
  12. res = res + (c & 1);
  13. c = c >> 1;
  14. }
  15. return res;
  16. }

时间复杂度:O(n)

空间复杂度:O(1)


python实现方法1:

  1. def hamming_distance(self, x: int, y: int) -> int:
  2. '''
  3. 汉明距离
  4. Args:
  5. x: 数值x
  6. y: 数值y
  7. Returns:
  8. 距离
  9. '''
  10. c = x ^ y
  11. res = 0
  12. while c > 0:
  13. res += (c & 1)
  14. c = c >> 1
  15. return res

时间复杂度:O(n)

空间复杂度:O(1)


源码地址

https://github.com/zhangyu345293721/leetcode

发表评论

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

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

相关阅读

    相关 LeetCode 461. 距离

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