LeetCode【461. 汉明距离】

这道题很直接,想到,先变为二进制,然后,x,y变为二进制后一个一个比较,不一样就加1,

对于如何变为二进制,就是除以二后的余数倒过来写,但是,这道题仅仅只是比较不一样的个数,

所以顺序问题就不必考虑,直接比较。

class Solution {
    public int hammingDistance(int x, int y) {
        int count = 0;
        int i,j;
        int m,n;
        while(true)
        {
            m = x%2;
            n = y%2;
            if(m != n)
            {
                count++;
            }
            x = x/2;
            y = y/2;
            if(x == 0&&y == 0)
            {
                break;
            }
        }
        return count;
    }
}

不用特意考虑x,y变为0怎么办,因为假如为0,m,x或者n,y不会改变。

posted on 2019-06-10 10:14  imimtks  阅读(95)  评论(0编辑  收藏  举报