Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
rotateMatrix
//JavaScript-C24.2.0 (SpiderMonkey) print(rotateMatrix([[1,2,3], [4,5,6],[7,8,9]])); // given an NxN matrix make a method to rotate it 90deg /* [ 1 2 3 ] [ 7 4 1 ] [ 4 5 6 ] -> [ 8 5 2 ] [ 7 8 9 ] [ 9 6 3 ] */ function rotateMatrix(matrix) { if (!matrix || matrix.length === 0 || matrix.length !== matrix[0].length) { throw new Error('invalid matrix'); } if (matrix.length < 2) { return matrix; // no need to do anything to rotate a 1,1 matrix } let len = matrix.length - 1; let half = Math.floor(matrix.length / 2); // loop through diagonal for (let start = 0; start < half; start++) { // loop through x axis for (let i = 0; i < len - (start * 2); i++) { let y = start; let x = start + i; let prev = matrix[y][x]; // loop through all 4 sides for (let j = 0; j < 4; ++j) { let nextY = x; let nextX = len - y; let next = matrix[nextY][nextX]; matrix[nextY][nextX] = prev; prev = next; x = nextX; y = nextY; } } } return matrix; }
run
|
edit
|
history
|
help
0
random2
color
binary
Stylus
JS exam part 2 - Circumference
JS exam part 2 - Find the property
David Anderson code challenge
random3
challenge
Try