LeetCode 477. Total Hamming Distance

原创 2016年12月24日 14:37:11

欢迎移步到我的个人博客

版权声明:本文为博主原创文章,转载请注明出处,谢谢!

题目要求

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

Now your job is to find the total Hamming distance between all pairs of the given numbers.

Example:

Input: 4, 14, 2

Output: 6

Explanation: In binary representation, the 4 is 0100, 14 is 1110, and 2 is 0010 (just
showing the four bits relevant in this case). So the answer will be:
HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6.

Note:
1. Elements of the given array are in the range of 0 to 10^9
2. Length of the array will not exceed 10^4.

题意解析

计算一个数组中,任意两个数汉明距离的总和。

解法分析

对于一个数组中,全部数字二进制的任意一位,汉明距离的总和为1的个数乘以0的个数。而数组中的数皆为int类型,所以一共需要进行32次循环。

解题代码

    public int totalHammingDistance(int[] nums) {
        int sum = 0;
        for (int i = 0; i < 32; i++) {
            int ones = 0;
            for (int j = 0; j < nums.length; j++)
                ones += (nums[j] >> i) & 0x1;
            sum += ones * (nums.length - ones);
        }
        return sum;
    }

Leetcode 477. Total Hamming Distance-java

1 解题思想 题目的意思就是给了一个数组,现在求总的海明距离,其中:  1、海明距离:任意两个数在二级制的表示下(int = 32bit),每个bit对应的值是1或0,那么这两个数在这32个位置下,...
  • xiaopihaierletian
  • xiaopihaierletian
  • 2016年12月27日 21:07
  • 495

477. Total Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bi...
  • liuchenjane
  • liuchenjane
  • 2016年12月18日 12:44
  • 1280

leetcode 477 Total Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bits...
  • feifeiiong
  • feifeiiong
  • 2017年03月26日 21:13
  • 125

Leetcode Total Hamming Distance 477

The Hamming distance between two integers is the number of positions at which the corresponding bits...
  • huaxixidongbeishida
  • huaxixidongbeishida
  • 2016年12月18日 16:54
  • 588

leetcode 477 Total Hamming Distance C++

这道题我最开始直接算每两个数字的hamming距离,超时了。 然后看了discuss,发现可以用每一位的1的个数乘以0的个数累加,牛逼啊! 最高答案用了32次方,其实31次方就够了,因为给了最大值...
  • a2331046
  • a2331046
  • 2017年01月04日 14:59
  • 296

【LeetCode-477】Total Hamming Distance

题目: The Hamming distance between two integers is the number of positions at which the corresponding...
  • cold2wind
  • cold2wind
  • 2016年12月20日 16:46
  • 368

leetcode 477. Total Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bits...
  • a1025461748
  • a1025461748
  • 2017年06月11日 22:49
  • 51

Leetcode: 477. Total Hamming Distance

Leetcode: 477. Total Hamming Distance
  • qq_16318319
  • qq_16318319
  • 2017年06月26日 12:53
  • 118

[leetcode] 477. Total Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bi...
  • TstsUgeg
  • TstsUgeg
  • 2016年12月20日 17:43
  • 132

[leetcode]477. Total Hamming Distance

题目链接:https://leetcode.com/problems/total-hamming-distance/ The Hamming distance between two int...
  • xiaocong1990
  • xiaocong1990
  • 2017年01月09日 16:37
  • 70
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode 477. Total Hamming Distance
举报原因:
原因补充:

(最多只允许输入30个字)