Esta es una pregunta que me hizo una multinacional muy famosa. La pregunta es la siguiente ...¿Podemos calcular esto en menos de O (n * n) ... (nlogn o n)
Ingrese una matriz 2D N * N de 0 y 1. Si A (i, j) = 1, entonces todos los valores correspondientes a la i-ésima fila y la j-ésima columna serán 1. Si ya hay un 1, se mantendrá como 1.
Como ejemplo, si tenemos la matriz
1 0 0 0 0
0 1 1 0 0
0 0 0 0 0
1 0 0 1 0
0 0 0 0 0
deberíamos obtener la salida como
1 1 1 1 1
1 1 1 1 1
1 1 1 1 0
1 1 1 1 1
1 1 1 1 0
la matriz de entrada está escasamente poblada.
¿Esto es posible en menos de O (N^2)?
No se proporciona espacio adicional era otra condición. Me gustaría saber si hay una manera de lograr la complejidad usando un espacio < = O (N).
P.S: No necesito respuestas que me den una complejidad de O (N * N). Este no es un problema de tarea. He intentado mucho y no pude obtener una solución adecuada y pensé que podría obtener algunas ideas aquí. Deje la impresión de lado por la complejidad
Mi idea aproximada fue eliminar dinámicamente el número de elementos atravesados restringiéndolos a alrededor 2N o más. Pero no pude tener una idea adecuada.
¿Qué es una MNC? –
@Peter: http: //en.wikipedia.org/wiki/Multinational_corporation ... – Flash
@Peter: Podrías haber buscado en Google ... http://en.wikipedia.org/wiki/MNC – fresskoma