Primero respondamos una pregunta más simple que está algo relacionada: dado un histograma de N rectángulos de varias alturas, calcule el área rectangular máxima en el histograma. Esto se puede hacer en tiempo lineal: consulte la respuesta del usuario de Quora a ¿Cuál es el enfoque algorítmico para encontrar el área rectangular máxima en un histograma? para una explicación
Con este algoritmo, podemos resolver este problema en tiempo [matemático] O (NM) [/ matemático]. Comience en la fila inferior y calcule las alturas del histograma, luego ejecute el algoritmo anterior. Ahora, elimine la fila inferior y actualice las alturas del histograma en consecuencia (disminuirá todas las alturas positivas en una o intentará cambiar una altura de cero a positiva, lo que requiere trabajo lineal amortizado), y repita. Elimine de forma iterativa las filas y actualice las alturas hasta que haya borrado toda la matriz.
- ¿Cuál es el principio principal del algoritmo de búsqueda binaria?
- ¿Por qué todos me dicen que aprenda la estructura de datos y los algoritmos si quiero obtener un trabajo de desarrollo de software?
- ¿Cuáles son las aplicaciones del algoritmo de la Torre de Hanoi?
- ¿Para qué sirven las estructuras de datos?
- ¿Qué libro debo elegir para estudiar la estructura de datos en lenguaje C?