Lo scenario
Guido lungo una strada con la mia macchina e inizia a piovere. Le gocce di pioggia cadono casualmente sulla mia finestra e ora mi chiedo, dov'è la più grande area bagnata collegata?
L'obiettivo
Per semplificare, la finestra è divisa in una matrice di 10 * 10 quadrati. Il tuo compito è quello di trovare la più grande area di goccia d'acqua collegata sulla finestra.
Ingresso
Sono disponibili due input, è possibile utilizzare un array bidimensionale o uno monodimensionale. Puoi scegliere tra qualsiasi input come stdin, ecc ...
Esempio:
// 2-dimensional:
[[0,1,0,0,0,0,1,0,0,0],
[0,1,1,0,0,0,0,1,1,0],
[0,1,1,0,0,0,0,1,0,0],
[0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0],
[0,0,0,1,1,0,0,0,1,0],
[0,0,0,1,1,0,0,0,1,0],
[0,0,0,0,0,1,1,0,1,0],
[0,0,0,0,0,1,1,0,1,0],
[0,0,0,0,0,0,0,0,0,0]]
// 1-dimensional
[0,1,0,0,0,0,1,0,0,0,
0,1,1,0,0,0,0,1,1,0,
0,1,1,0,0,0,0,1,0,0,
0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,
0,0,0,1,1,0,0,0,1,0,
0,0,0,1,1,0,0,0,1,0,
0,0,0,0,0,1,1,0,1,0,
0,0,0,0,0,1,1,0,1,0,
0,0,0,0,0,0,0,0,0,0]
Produzione
Il tuo codice deve indicare la dimensione dell'area connessa più grande e le coordinate x e y dei waterdrops che appartengono a quest'area nel formato
"Dimensione: Coordinate Z: (X1, Y1) (X2, Y2) .. "
Esempio per l'input precedente:
Size: 6 Coordinates: (1,0) (1,1) (2,1) (1,2) (2,2) (1,3)
L'ordine delle coordinate non ha importanza.
Regole
- I waterdrops sono collegati, se si toccano tra loro ortogonalmente
- Le connessioni diagonali non contano
- Possono esserci molte aree e il tuo codice deve trovare quello più grande
- Un campo vuoto è rappresentato come "0" e un campo bagnato come "1"
- Pubblica la tua soluzione con una breve spiegazione e l'output dell'input precedente
- Vincerà il codice più breve entro i prossimi 7 giorni
- Se ci sono due aree con le stesse dimensioni, puoi sceglierne una
