Я пытаюсь найти решение своей проблемы более недели, и я не мог найти ничего лучше, чем про итерация milion iterations, поэтому я думаю, что пришло время попросить кого-нибудь помочь мне.
У меня есть 3D-массив. Скажем, мы говорим о земле, а первый слой - поверхность. Другие слои - этажи под землей. Я должен найти самую глубокую длину пути, количество изолированных пещер под землей и размер самой большой пещеры.
Вот визуализация моей проблемы.
Input:
5 5 5 // x, y, z
xxxxx
oxxxx
xxxxx
xoxxo
ooxxx
xxxxx
xxoxx
and so...
Output:
5 // deepest path - starting from the surface
22 // size of the biggest cave
3 // number of izolated caves (red ones) (izolated - cave that doesn't reach the surface)
Обратите внимание, что даже если красная ячейка на втором этаже расположена рядом с зеленым, это не та же пещера, потому что она расположена по диагонали, и это не считается. Мне сказали, что лучший способ сделать это может использовать рекурсивный алгоритм "делить и править", однако я действительно не знаю, как это могло бы выглядеть.