stavo cercando su alcune domande di intervista, e mi sono imbattuto su questo:Trovare blocchi in array
C'è una serie m x n. Un blocco nella matrice è denotato da un 1 e uno 0 indica nessun blocco. Si suppone di trovare il numero di oggetti nell'array. Un oggetto non è altro che un insieme di blocchi che sono collegati orizzontalmente e/o verticalmente.
es
0 1 0 0
0 1 0 0
0 1 1 0
0 0 0 0
0 1 1 0
Risposta: Ci sono 2 oggetti in questa matrice. L'oggetto forma L e l'oggetto nell'ultima riga.
Sto riscontrando problemi con un algoritmo in grado di rilevare una forma "u" (come sotto). Come dovrei avvicinarmi a questo?
0 1 0 1
0 1 0 1
0 1 1 1
0 0 0 0
0 1 1 0
Probabilmente si può usare [Riempimento] (http: // en.wikipedia.org/wiki/Flood_fill) per trovare forme. Scansionare per un (non visitato) 1 e riempire la forma quando la trovi. – thegrinner
quindi le diagonali non sono considerate connessioni valide? –
No, non lo sono. – Lg102