汉明距离总和(Java算法每日一题)

问:
两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。

计算一个数组中,任意两个数之间汉明距离的总和。
原题链接:https://leetcode.cn/problems/total-hamming-distance/

例:
输入: 4, 14, 2

输出: 6

答:

class Solution {
    public int totalHammingDistance(int[] nums) {
        int s = 0;
        for(int i = 31;i >= 0;i--)
        {
            int s1=0,s2=0;
            for(int n:nums)
            {
                if(((n >> i) & 1) == 1)
                {
                    s1++;
                }
                else
                {
                    s2++;
                }
            }
            s += s1 * s2;
        }
        return s;
    }
}

版权声明:本文为weixin_44911081原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。