【leetcode】【Easy】【461. Hamming Distance】【bit manipulation】

来源:互联网 发布:java开发实战入门pdf 编辑:程序博客网 时间:2024/06/07 04:08

problem link:https://leetcode.com/problems/hamming-distance/



code:

效率从高到低的三种方法

第一种方法,要知道java中int占用4个字节(char占用2个字节 reference:http://blog.csdn.net/witsmakemen/article/details/8974200),这种类型的题既然位操作就要使用位操作,所以第二种方法要比第一种方法效率低一点。第三种方法用的是java自带的方法。

    public int hammingDistance(int x, int y) {        int z=x^y;        int bits=0;                for(int i=0;i<32;i++){            bits+=z&1;            z=z>>1;        }                return bits;            }        public int hammingDistance(int x, int y) {int z=x^y;int bits=0;while(z!=0){bits+=z%2;z=z>>1;//比除以2效率要高很多}return bits;    }        public int hammingDistance(int x, int y) {         return Integer.bitCount(x ^ y);    }


0 0
原创粉丝点击