Digamos que tengo la siguiente matriz (2D):
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Gire la matriz en sentido antihorario R
(no en incrementos de 90 grados, solo 1 número cada vez),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Ejemplo completado:
Entrada:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Salida:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(los espacios extraños son para alinear los números en columnas bonitas)
El "anillo" externo de la matriz gira 2 en sentido antihorario, y el derecho interno también gira 2. En esta matriz, solo hay dos anillos.
Un ejemplo con 1 "anillo":
2
[[1, 2],
[3, 4],
[5, 6]]
Debería dar salida:
[[4, 6],
[2, 5],
[1, 3]]
Su desafío es incorporar una matriz y un número entero R
y generar la versión traducida después de las R
rotaciones.
La rotación de una matriz 4x5 está representada por la siguiente figura:
Restricciones:
2 ≤ M, N ≤ 100
, donde M y N son las dimensiones de la matriz. Se garantiza que el mínimo de M y N será par.1 ≤ R ≤ 80
, donde r es el número de rotaciones.- La matriz solo contendrá enteros positivos.
- Los valores no siempre son distintos.
- La entrada siempre debe ser como una matriz 2D (si no puede tomar la entrada de tiempo de ejecución como una matriz 2D, entonces solo tiene que encontrar otra forma de obtener la entrada).
Otro caso de prueba, con valores no distintos:
1
[[1, 1],
[2, 2],
[3, 3]]
Salidas:
[[1, 2],
[1, 3],
[2, 3]]
Este es el código de golf , por lo que gana la respuesta más corta.
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
el 16 se duplica de repente, supongo que debería ser [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
:?