[338] LeetCode. Count bits (operación de bit)

Dado un num número entero no negativo. Para 0 ≤ i ≤ i, cada rango num digital, que calcula el número de dígitos binarios 1 y vuelve como una matriz.

Ejemplo 1:
Entrada: 2
de salida: [0,1,1]

Ejemplo 2:
Entrada: 5
de salida: [0,1,1,2,1,2]

Solución 1: utilizar las funciones de biblioteca

class Solution {
    public int[] countBits(int num) {
        int[] arr = new int[num + 1];
        for(int i = 0; i <= num; i++){
            arr[i] = Integer.bitCount(i);
        }
        return arr;
    }
}

Solución dos:

class Solution {
    public int[] countBits(int num) {
        int[] arr = new int[num + 1];
        for(int i = 1; i <= num; i++){
            arr[i] = arr[(i & i- 1)] + 1;
        }
        return arr;
    }
}

Supongo que te gusta

Origin www.cnblogs.com/whisperbb/p/12623889.html
Recomendado
Clasificación