LintCode 1217. Algoritmo JavaScript de distancia total de Hamming

descripción

La distancia de Hamming entre dos enteros es el número de posiciones donde los bits correspondientes son diferentes.

Ahora su trabajo consiste en encontrar la distancia Hamming total entre todos los pares de números dados.

Descripción

1. Los elementos de una matriz dada están en el rango de 0 a 10 ^ 9.
2. La longitud de la matriz no excede 10 ^ 4.

Muestra

-1:

输入: [4, 14, 2]
输出: 6
解释:在二进制表示中,40100,141110,20010(只是显示在这种情况下相关的四个位)。 所以答案是:
汉明距离(4,14) + 汉明距离(4,2) + 汉明距离(14,2) = 2 + 2 + 2 = 6

-2:

输入: [2, 1, 0]
输出: 4
解释:在二进制表示中,210,101,000(只是显示在这种情况下相关的四个位)。 所以答案是:
汉明距离(2,1) + 汉明距离(1,0) + 汉明距离(2,0) = 2 + 1 + 1 = 4

Analizando

Consulte 835. Distancia de 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;
}


resultado de la operación

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/SmallTeddy/article/details/108635588
Recomendado
Clasificación