Dado un rango [m, n] donde 0 <= m <= n <= 2147483647, devuelve el AND bit a bit de todos los números en este rango, inclusive. Por ejemplo, dado el rango [5, 7], debes devolver 4. Solución Java
La clave para resolver este problema es bit a bit Y números consecutivos. Puede utilizar el siguiente ejemplo para recorrer el código.
8 4 2 1 --------------- 5 | 0 1 0 1 6 | 0 1 1 0 7 | 0 1 1 1
public int rangeBitwiseAnd(int m, int n) { while (n > m) { n = n & n - 1; } return m & n; } |