[LeetCode]461. Hamming Distance 求汉明距离

为了锻炼算法能力又开始做题了,还是先从LeetCode的Easy下手。
这个题要我们求两个数的汉明距离,其实看起来很高深,其实ACM啥的对我来说,既然当前还掌握不了高深的算法,倒不如看规律去做!
例子:

Input: x = 1, y = 4
Output: 2
Explanation:
    1   (0 0 0 1)
    4   (0 1 0 0)
           ↑   ↑

这里看到其实就是两个数二进制做异或,就是"^"符号。
1在二进制里是001
4在二进制里是100
他俩按位异或,相同就返回0,不同就返回1
所以最后返回的结果是101,换回十进制就是5。
这时候 汉明距离 就是这个返回的值二进制状态下 有多少个1.
101里面有俩“1”,所以汉明距离为2.

public class Solution {
    public int hammingDistance(int x, int y) {
        int z = x^y;
        int res = 0;
        while(z!=0){
            if(z%2==1){
                res++;
            }
            z=z/2;
        }
        return res;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,395评论 2 36
  • 原文首发于 baishusama.github.io,欢迎围观~肝不动业务代码的时候,就时不时地做个题吧/w\ 题...
    白蜀黍阅读 268评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,741评论 18 399
  • 网站乱码问题我们会经常碰到,大多见于非英文的中文字符或其他字符乱码,而且,这类问题常常是因为编码方式问题,主要原因...
    波段顶底阅读 3,337评论 1 9
  • 我很少有机会陪父亲过父亲节,因为小的时候,不流行过什么父亲节,等到流行了,我又在外面求学,工作。最多的就是一个...
    phoenix0201阅读 228评论 2 1

友情链接更多精彩内容