描述
兩個整數之間的漢明距離是相應位不同的位置數,
現在你的作業是找到所有給定數字對之間的總漢明距離,
說明
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;
}
運行結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/80201.html
標籤:其他
