Número de bits 1

1. Demanda

  • Escribe una función, la entrada es un entero sin signo (en forma de cadena binaria) y devuelve el número de dígitos de la expresión binaria cuyos dígitos son '1'.

Ejemplo 1:

Entrada: 00000000000000000000000000001011
Salida: 3
Explicación: En la cadena binaria de entrada 00000000000000000000000000001011, un total de tres bits son '1'.

Operación de dos bits

2.1 Análisis de pensamiento

  1. La idea de esta pregunta es invertir los dígitos binarios : https://blog.csdn.net/Sruggle/article/details/113888614 Un enlace en la idea, es decir, contar el número de ocurrencias de 1 de menor a alto;

2.2 Implementación del código

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int res = 0;
        for(int i = 0; i < 32; i++) {
            if((n & 1) == 1) {
                res++;
            }
            n = n >> 1;
        }
        return res;
    }
}

2.3 Análisis de complejidad

  • La complejidad del tiempo es O (1);
  • La complejidad del espacio es O (1);

Supongo que te gusta

Origin blog.csdn.net/Sruggle/article/details/113891400
Recomendado
Clasificación