У меня есть гистограмма с целыми высотами и постоянной шириной 1. Я хочу максимизировать прямоугольную область под гистограммой. например:.
_
| |
| |_
| |
| |_
| |
Ответ для этого будет 6, 3 * 2, используя col1 и col2.
O (n ^ 2) грубая сила мне понятна, мне нужен алгоритм O (n log n). Я пытаюсь думать о динамическом программировании вдоль линий максимальной возрастающей подпоследовательности O (n log n) algo, но не буду дальше. Должен ли я использовать алгоритм разделения и покорения?
PS: людям с достаточной репутацией требуется удалить тег divide-and-завоевание, если такого решения нет.
После комментариев mho: Я имею в виду область наибольшего прямоугольника, которая полностью подходит. (Спасибо j_random_hacker за разъяснение:)).