Menu
Coddy logo textTech

Schemi comuni degli array 2D

Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 8 di 59.

Alcuni schemi ricorrono spesso quando si lavora con array 2D. Riconoscere questi schemi può aiutarti a risolvere i problemi in modo più efficiente. Ecco alcuni schemi comuni:

Attraversamento diagonale

Accedere agli elementi in cui l’indice della riga è uguale all’indice della colonna (matrix[i][i]) consente di ottenere la diagonale principale. Per la diagonale secondaria, la somma degli indici della riga e della colonna è uguale alla dimensione dell’array meno 1 (matrix[i][size - 1 - i]).

Per esempio:

1  2  3
4  5  6
7  8  9

Attraversa la diagonale principale (matrix[i][i]): 1, 5, 9
Attraversa la diagonale secondaria (matrix[i][size - 1 - i]): 3, 5, 7

Attraversamento del bordo

Per attraversare gli elementi del bordo, mantieni costante un indice (0 o size - 1) mentre iteri sull’altro.

Per accedere al bordo superiore, iteri sulle colonne mantenendo l'indice di riga fisso a 0.

Per esempio:

1  2  3  4
5  6  7  8
9 10 11 12

elementi del bordo: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (tutti tranne 6 e 7)

challenge icon

Sfida

Facile

Crea un metodo chiamato printPatterns che accetta in input un array 2D quadrato di numeri interi (matrix) e stampa i seguenti schemi:

  1. Diagonale principale: stampa tutti gli elementi in cui l'indice della riga è uguale all'indice della colonna.
  2. Diagonale secondaria: stampa tutti gli elementi in cui la somma degli indici della riga e della colonna è uguale alla dimensione della matrice meno 1.
  3. Bordi: stampa gli elementi dei bordi superiore, inferiore, sinistro e destro della matrice.

L'output dovrebbe apparire così:

Main Diagonal: 1 6 11 16 
Anti-Diagonal: 4 7 10 13 
Top Border: 1 2 3 4 
Bottom Border: 13 14 15 16 
Left Border: 1 5 9 13 
Right Border: 4 8 12 16

Provalo tu

// Scrivi il tuo codice solo all'interno della classe. Non scrivere main() né altro codice al di fuori di questa classe.
class PrintPatterns {
    public static void printPatterns(int[][] matrix) {
        // Scrivi il tuo codice qui
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Java online