Escriba un programa que tome como entrada 2 matrices enteras y devuelva un valor verdadero si existe un elemento que esté presente en ambas matrices, o uno falso de lo contrario. La solución obvia a este problema sería iterar a través de cada elemento en el primer conjunto y compararlo con cada elemento en el segundo, pero aquí está el truco: su programa debe tener una complejidad algorítmica como máximo, en el peor de los casos, O ( NlogN), donde N es la longitud de la matriz más larga,
Casos de prueba:
{1,2,3,4,-5},{5,7,6,8} -> false
{},{0} -> false
{},{} -> false
{1,2},{3,3} -> false
{3,2,1},{-4,3,5,6} -> true
{2,3},{2,2} -> true
Este es el código de golf , por lo que gana el código más corto en bytes.
O(n log n)
es factible en general, pero la aclaración sobre el manejo solo de enteros nativos significa que en algunos idiomas con rangos de enteros limitados es posible una solución lineal (por ejemplo, mediante una tabla de búsqueda de tamaño 2 ^ 64)