ho bisogno di scrivere funzione ricorsiva in C++ che trova la più grande area del numero '1' a matrice 2D che contiene solo 1 o 0.Trova più grande area a matrice 2D in C++
Esempio:
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, },
};
visivo esempio http://s23.postimg.org/yabwp6h23/find_largest.png
più grande area di questa matrice è di 12, il secondo più grande è 3 e il terzo più grande è 2.
pensavo di fare questo con qualcosa di simile a fl ood algoritmo di riempimento, ma non riesco a capire come.
riempimento Flood avrebbe funzionato. Se resti bloccato da qualche parte, dovresti pubblicare il tuo tentativo e descrivere il tuo problema. –
Forse per ogni elemento uguale a 1, selezionare Nord, Sud Est e Ovest, quindi incrementare e ricontrollare. Inoltre, aggiungi indici di array incrementati a un elenco ignorato. Ci sono così tanti algoritmi di fill flood che sarebbe interessante sapere quale sia il migliore. – james82345
una domanda correlata è http://stackoverflow.com/questions/2478447/find-largest-rectangle-contain-only-zeros-in-an-nn-binary-matrix – user1929959