Dado un rango [L, R] , la tarea es encontrar un par (X, Y), no necesariamente distintos . Encuentre el valor máximo posible del AND bit a bit de los enteros elegidos.
Ejemplos:
Entrada: L = 3, R = 7
Salida: 7
Explicación:
En todos los pares posibles, el par (7, 7) da el valor máximo para AND bit a bit.
Entrada: L = 54, R = 55
Salida: 55
Explicación:
En todos los pares posibles, el par (55, 55) da el valor máximo para AND bit a bit.
Enfoque ingenuo: para resolver el problema mencionado anteriormente, el método ingenuo es iterar de L a R y verificar el AND bit a bit para cada par posible e imprimir el valor máximo al final.
Complejidad de tiempo: O(N 2 )
Enfoque eficiente:
Para optimizar el método anterior tenemos que observar que aquí tenemos los números enteros L y R y tenemos que seleccionar dos números enteros del intervalo [L, R] para que su AND bit a bit debería ser máximo. El AND bit a bit de dos números cualesquiera entre L y R será siempre menor o igual que R únicamente. Entonces, si tenemos que seleccionar dos enteros del intervalo, podemos elegir que los enteros sean R y esa es la única forma de maximizar el AND bit a bit.
A continuación se muestra la implementación del enfoque anterior:
C
// C implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same #include <stdio.h> // Function to return the // maximum bitwise AND int maximumAND(int L, int R) { return R; } // Driver code int main() { int l = 3; int r = 7; printf("%d", maximumAND(l, r)); return 0; }
C++
// C++ implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same #include <bits/stdc++.h> using namespace std; // Function to return the // maximum bitwise AND int maximumAND(int L, int R) { return R; } // Driver code int main() { int l = 3; int r = 7; cout << maximumAND(l, r); return 0; }
Java
// Java implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same class GFG { // Function to return the // maximum bitwise AND static int maximumAND(int L, int R) { return R; } // Driver code public static void main(String[] args) { int l = 3; int r = 7; System.out.print(maximumAND(l, r)); } }
Python3
# Python3 implementation to find the # Maximum Bitwise AND pair (X, Y) # from given range such that # X and Y can be same # Function to return the # maximum bitwise AND def maximumAND(L, R): return R # Driver code if __name__ == '__main__': l = 3 r = 7 print(maximumAND(l, r))
C#
// C# implementation to find the // maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same using System; class GFG{ // Function to return the // maximum bitwise AND static int maximumAND(int L, int R) { return R; } // Driver code public static void Main(String[] args) { int l = 3; int r = 7; Console.Write(maximumAND(l, r)); } } // This code is contributed by amal kumar choubey
Javascript
<script> // JavaScript implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same // Function to return the // maximum bitwise AND function maximumAND(L, R) { return R; } // Driver Code let l = 3; let r = 7; document.write(maximumAND(l, r)); </script>
7
Complejidad de tiempo: O(1)
Publicación traducida automáticamente
Artículo escrito por coder_nero y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA