LeetCode之Hamming Distance

举报
chenyu 发表于 2021/07/26 23:57:44 2021/07/26
【摘要】 1、题目 The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate...

1、题目

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, calculate the Hamming distance.

Note:
0 ≤ xy < 231.

Example:


   
  1. Input: x = 1, y = 4
  2. Output: 2
  3. Explanation:
  4. 1 (0 0 0 1)
  5. 4 (0 1 0 0)
  6. ↑ ↑
  7. The above arrows point to positions where the corresponding bits are different.

题意:

给定两个整数x,y,计算x和y的汉明距离。汉明距离是指x、y的二进制表示中,相同位置上数字不相同的所有情况数。

 


2、代码实现


   
  1. public class Solution {
  2. public int hammingDistance(int x, int y) {
  3. int notSame = x ^ y;
  4. int count = 0;
  5. while (notSame != 0) {
  6. if (notSame % 2 == 1)
  7. ++count;
  8. notSame /= 2;
  9. }
  10. return count;
  11. }
  12. }
注意记得用 异或
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
0 ^ 0 = 0
 
然后就是我们平时10进制的话,每次去掉末尾的数字是 / 10,二进制的话就是/2,切记。 
 
 

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/65668790

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。