¿Cuál es el algoritmo más eficiente para encontrar el rectángulo con el área más grande que cabe en el espacio vacío?Puzzle: Encuentra el rectángulo más grande (problema de rectángulo máximo)
Digamos que la pantalla se ve (área '#' representa llena) así:
....................
..............######
##..................
.................###
.................###
#####...............
#####...............
#####...............
Una posible solución es:
....................
..............######
##...++++++++++++...
.....++++++++++++###
.....++++++++++++###
#####++++++++++++...
#####++++++++++++...
#####++++++++++++...
Normalmente me gustaría disfrutar averiguar una solución. Aunque esta vez me gustaría evitar perder el tiempo buscando por mi cuenta, ya que esto tiene un uso práctico para un proyecto en el que estoy trabajando. ¿Hay una solución conocida?
Shog9 escribió:
Está su entrada una matriz (como se deduce por las otras respuestas), o una lista de oclusiones en la forma de, rectángulos colocados de tamaño arbitrario (como podría ser el caso en un sistema de ventanas cuando se trata de posiciones de ventanas)?
Sí, tengo una estructura que hace un seguimiento de un conjunto de ventanas colocadas en la pantalla. También tengo una grilla que hace un seguimiento de todas las áreas entre cada borde, ya sea que estén vacías o llenas, y la posición de píxel de su borde izquierdo o superior. Creo que hay alguna forma modificada que aprovecharía esta propiedad. ¿Sabes de alguno?
Este es el tiempo O (mn), que es óptimo. –
vea aquí también - http://www.geeksforgeeks.org/maximum-size-sub-matrix-with-all-1s-in-a-binary-matrix/ – roottraveller