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;
}
}