Qual é o caminho mais rápido para encontrar o caminho mais profundo em um array 3D?
Eu tenho tentado encontrar solução para o meu problema por mais de uma semana e eu não consegui descobrir nada melhor do que um progresso milionário, então eu acho que é hora de pedir a alguém para me ajudar.
Eu tenho um array 3D. Digamos que estamos falando do chão e a primeira camada é uma superfície. Outras camadas são pisos abaixo do solo. Eu tenho que encontrar o comprimento do caminho mais profundo, a contagem de cavernas isoladas no subsolo e o tamanho da maior caverna.
Aqui está a visualização do meu problema.
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)
Note que, mesmo que os eritrócitos no 2º andar estejam próximos do verde, não é a mesma caverna porque está na diagonal e isso não conta. Eu tenho dito que a melhor maneira de fazer isso, pode ser usando algoritmo recursivo "dividir e governar" no entanto eu realmente não sei como poderia ser.