Menu
Coddy logo textTech

Patrones Comunes de Arreglos 2D

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 8 de 59.

Ciertos patrones aparecen con frecuencia al trabajar con arreglos bidimensionales. Reconocer estos patrones puede ayudarte a resolver problemas de manera más eficiente. Estos son algunos patrones comunes:

Recorrido diagonal

El acceso a los elementos donde el índice de fila es igual al índice de columna (matrix[i][i]) te da la diagonal principal. Para la antidiagonal, la suma de los índices de fila y columna es igual al tamaño del arreglo menos 1 (matrix[i][size - 1 - i]).

Por ejemplo:

1  2  3
4  5  6
7  8  9

Recorrer la diagonal principal (matrix[i][i]): 1, 5, 9
Recorrer la antidiagonal (matrix[i][size - 1 - i]): 3, 5, 7

Recorrido del Borde (Border)

Para recorrer los elementos del borde (Border), mantienes un índice constante (0 o size - 1) mientras iteras sobre el otro.

Para acceder al borde superior, iteras sobre las columnas con el índice de fila fijo en 0.

Por ejemplo:

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

elementos del borde: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (todos excepto 6 y 7)

challenge icon

Desafío

Fácil

Crea un método llamado printPatterns que tome como entrada una matriz bidimensional cuadrada de enteros (matrix) e imprima los siguientes patrones:

  1. Diagonal principal: Imprime todos los elementos donde el índice de la fila sea igual al índice de la columna.
  2. Antidiagonal: Imprime todos los elementos donde la suma de los índices de la fila y la columna sea igual al tamaño de la matriz menos 1.
  3. Bordes: Imprime los elementos de los bordes superior, inferior, izquierdo y derecho de la matriz.

La salida debería verse así:

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

Pruébalo tú mismo

// Escribe tu código solo dentro de la clase. No escribas main() ni ningún código fuera de esta clase.
class PrintPatterns {
    public static void printPatterns(int[][] matrix) {
        // Escribe tu código aquí
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo