Was ist der schnellste Weg, um den tiefsten Pfad in einem 3D-Array zu finden?

Ich habe mehr als eine Woche lang versucht, eine Lösung für mein Problem zu finden, und ich konnte nichts Besseres herausfinden als einen Millionen-Iterations-Prog. Ich denke, es ist Zeit, jemanden zu bitten, mir zu helfen.

Ich habe ein 3D-Array. Nehmen wir an, wir reden über den Boden und die erste Schicht ist eine Oberfläche. Eine weitere Schicht sind Böden unter der Erde. Ich muss die Länge des tiefsten Pfades, die Anzahl der unterirdischen Höhlen und die Größe der größten Höhle finden.

Hier ist die Visualisierung meines Problems.

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)

Beachten Sie, dass die rote Zelle im 2. Stock zwar neben der grünen Zelle platziert ist, aber nicht dieselbe Höhle ist, da sie diagonal platziert ist und dies nicht zählt. Mir wurde gesagt, dass der beste Weg, dies zu tun, die Verwendung des rekursiven Algorithmus "Teilen und Regeln" sein könnte, aber ich weiß nicht wirklich, wie es aussehen könnte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage