Motifs courants des tableaux 2D
Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 8 sur 59.
Certains motifs apparaissent souvent lors du travail avec des tableaux 2D. Reconnaître ces motifs peut vous aider à résoudre les problèmes plus efficacement. Voici quelques motifs courants :
Parcours diagonal
Accéder aux éléments où l'indice de ligne est égal à l'indice de colonne (matrix[i][i]) vous donne la diagonale principale. Pour l'anti-diagonale, la somme des indices de ligne et de colonne est égale à la taille du tableau moins 1 (matrix[i][size - 1 - i]).
Par exemple :
1 2 3
4 5 6
7 8 9Parcourir la diagonale principale (matrix[i][i]) : 1, 5, 9
Parcourir l'anti-diagonale (matrix[i][size - 1 - i]) : 3, 5, 7
Parcours de la bordure
Pour parcourir les éléments de bordure, vous gardez un indice constant (0 ou size - 1) tout en itérant sur l'autre.
Pour accéder à la bordure supérieure, vous itérez sur les colonnes avec l'indice de ligne fixé à 0.
Par exemple :
1 2 3 4
5 6 7 8
9 10 11 12éléments de bordure : 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (tous sauf 6 et 7)
Défi
FacileCréez une méthode nommée printPatterns qui prend un tableau 2D carré d'entiers (matrix) en entrée et affiche les motifs suivants :
- Diagonale principale : Affichez tous les éléments où l'indice de ligne est égal à l'indice de colonne.
- Anti-diagonale : Affichez tous les éléments où la somme des indices de ligne et de colonne est égale à la taille de la matrice moins 1.
- Bordures : Affichez les éléments des bordures supérieure, inférieure, gauche et droite de la matrice.
Cet affichage devrait ressembler à ceci :
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 16Aide-mémoire
Schémas courants de parcours de tableaux 2D :
Parcours diagonal
Diagonale principale : matrix[i][i] (indice de ligne égal à indice de colonne)
Anti-diagonale : matrix[i][size - 1 - i] (somme des indices de ligne et de colonne égale size - 1)
1 2 3
4 5 6
7 8 9Diagonale principale : 1, 5, 9
Anti-diagonale : 3, 5, 7
Parcours des bordures
Maintenir un indice constant (0 ou size - 1) en itérant sur l'autre :
- Bordure supérieure : row = 0, itérer les colonnes
- Bordure inférieure : row = size - 1, itérer les colonnes
- Bordure gauche : column = 0, itérer les lignes
- Bordure droite : column = size - 1, itérer les lignes
Essayez vous-même
// Écrivez votre code uniquement à l'intérieur de la classe. N'écrivez pas main() ni aucun code en dehors de cette classe.
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// Écrivez votre code ici
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots