Учитывая двоичный массив NxNxN (содержащий только 0 или 1), как мы можем получить наибольший прямоугольный параллелепипед с нетривиальным решением, т.е. за O(N^3 ) ?
--
Это та же задача, что Найти самый большой прямоугольник, содержащий только нули в двоичной матрице размера N×N, но в верхнем измерении. Кроме того, в моем случае самый большой прямоугольник может «пересекать край» массива, т.е. пространство похоже на тор для 2D-матрицы.
Для двумерного массива, если запись:
00111
00111
11000
00000
00111
решение, обозначенное «X», равно
00XXX
00XXX
11000
00000
00XXX
Я выполнил вычисления для двоичного массива NxN и нашел решение задачи о наибольшем прямоугольнике за O( N^2), следуя идее из http://tech-queries.blogspot.de/2011/03/maximum-area-rectangle-in-histogram.html. Но я не знаю, как применить его для 3D-массива.
--
Пример для массива 3x3x3, где решение "пересекает край":
111
100
011
111
001
111
011
110
011
решение должно быть:
1XX
100
0XX
1XX
001
1XX
0XX
110
0XX