FÁCIL SOLUCIÓN A CONTINUACIÓN:
Para imprimir una matriz NxN en orden de espiral, siga el siguiente truco:
Cada matriz tiene 4 esquinas [0,0] [0, N-1] [N-1, N-1] [N-1,0]. Ahora solo haga una función con la entrada N = tamaño de matriz y matriz ->
- ¿Dónde puedo encontrar las preguntas solo sobre búsqueda y clasificación?
- ¿Cuál es la diferencia entre Segment Tree y Fenwick Tree en términos de operaciones?
- ¿Cuándo se usaría un algoritmo gráfico?
- Cómo ordenar una lista anidada en Python
- ¿Por qué es Introducción a los algoritmos una lectura obligada para convertirse en un mejor programador?
func (N, mat [N] [N]) {
if (N == 1) {elemento PRINT; }
if (N == 2) {IMPRIMIR todas las esquinas; }
más{
IMPRIMIR primera esquina [0,0] -> luego imprimir línea b / n primera y segunda esquina;
IMPRIMIR segunda esquina [0, N-1] -> luego imprima la línea b / n segunda y tercera esquina;
IMPRIMIR tercera esquina [N-1, N-1] -> luego línea b / w tercera y cuarta esquina;
IMPRIMIR cuarta esquina [0, N-1] -> luego línea b / w cuarta y primera esquina;
DETENER. // la primera espiral está completa. Ahora entraremos en la segunda espiral. Como estamos imprimiendo ambas esquinas de la matriz NxN, la nueva matriz será de tamaño (N-2) X (N-2).
}
func (N-2, mat [N-2] [N-2]);
}
CASO BASE Y ANÁLISIS:
SI (N es INCLUSO) para que la recursividad de N-2 llegue a la matriz 2X2 y termine .-> así que solo imprima todas las esquinas.
Si (N es ODD), la recursividad de N-2 alcanzará la matriz 1X1, así que solo imprima un elemento.