I rekursive Funktion in C++ geschrieben werden muss, die größte Fläche der Nummer findet '1' in der 2D-Array, dieFinden größte Fläche in 2D-Array in C++
Beispiel nur 1 oder 0 enthält:
int Arr[5][8] =
{
{ 0, 0, 0, 0, 1, 1, 0, 0, },
{ 1, 0, 0, 1, 1, 1, 0, 0, },
{ 1, 1, 0, 1, 0, 1, 1, 0, },
{ 0, 0, 0, 1, 1, 1, 1, 0, },
{ 0, 1, 1, 0, 0, 0, 0, 0, },
};
Visuelles Beispiel: http://s23.postimg.org/yabwp6h23/find_largest.png
größte Fläche dieser Anordnung 12 ist, die zweitgrößte ist 3 und drittgrößte 2.
ich dachte, dies mit zu fl ähnlich, etwas zu tun ood füllen Algorithmus, aber kann einfach nicht herausfinden, wie.
Flood Fill funktionieren würde. Wenn Sie irgendwo stecken bleiben, sollten Sie Ihren Versuch posten und Ihr Problem beschreiben. –
Vielleicht für jedes Element, das gleich 1 ist prüfen Sie Norden, Südosten und Westen dann erhöhen Sie und überprüfen Sie erneut. Fügen Sie außerdem inkrementierte Array-Indizes zu einer Ignorierliste hinzu. Es gibt so viele Flutfüllungsalgorithmen, dass es interessant wäre zu wissen, welches das beste ist. – james82345
eine verwandte Frage ist http://stackoverflow.com/questions/2478447/find-largest-rectangle-containing-only-zeros-in-an-nn-binary-matrix – user1929959