Deo zbornika Učimo algoritme
Rotiranje matrice
Matrice možemo rotirati na različite načine. Najčešće rotacije su za 90, 180 i 270 stepeni, u smeru kazaljke na satu.
Rotiranje matrice za 90 stepeni
Ovaj algoritam rotira 2D matricu (niz nizova) za 90 stepeni u smeru kazaljke na satu:
const rotiraj = matrica =>
matrica.map((red, i) =>
matrica.map(red => red[i]).reverse())
const matrica = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
console.log(rotiraj(matrica))
Rotiranje matrice za 180 stepeni
const rotiraj180 = matrica =>
matrica.map(red => red.reverse()).reverse()
const matrica = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
console.log(rotiraj180(matrica))
Rotiranje matrice za 270 stepeni (-90)
const rotiraj270 = matrica =>
matrica[0].map((_, indeksKolone) =>
matrica.map(red => red[indeksKolone])).reverse()
const matrica = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
console.log(rotiraj270(matrica))