本文主要是介绍LintCode 1217. 总汉明距离 JavaScript算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
两个整数之间的汉明距离是相应位不同的位置数。
现在你的工作是找到所有给定数字对之间的总汉明距离。
说明
1.给定数组的元素在0到10^9的范围内
2.数组长度不超过10^4。
样例
- 例1:输入: [4, 14, 2]
输出: 6
解释:在二进制表示中,4是0100,14是1110,2是0010(只是显示在这种情况下相关的四个位)。 所以答案是:
汉明距离(4,14) + 汉明距离(4,2) + 汉明距离(14,2) = 2 + 2 + 2 = 6。- 例2:输入: [2, 1, 0]
输出: 4
解释:在二进制表示中,2是10,1是01,0是00(只是显示在这种情况下相关的四个位)。 所以答案是:
汉明距离(2,1) + 汉明距离(1,0) + 汉明距离(2,0) = 2 + 1 + 1 = 4。
解析
可参考835. Hamming距离
totalHammingDistance = function (nums) {var total = 0,n = nums.length;for (var j = 0; j < 32; j++) {var bitCount = 0;for (var i = 0; i < n; i++) { bitCount += (nums[i] >> j) & 1;}total += bitCount*(n - bitCount);}return total;
}
运行结果
这篇关于LintCode 1217. 总汉明距离 JavaScript算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!