/** * @param {number[][]} matrix * @return {void} Do not return anything, modify matrix in-place instead. */ const rotate = (matrix) => { let maxWidth = matrix[0].length; for (let i = matrix.length - 1; i >= 0; i--) { // console.log(i) // console.log(matrix[i]) for (let j = 0; j < maxWidth; j++) { // console.log(matrix[j][maxWidth + (maxWidth - i)]) // matrix[j][maxWidth + (maxWidth - i)].push(matrix[i][j]); matrix[j].splice(maxWidth + (maxWidth - i), 0, (matrix[i][j])); // matrix[j].splice(maxWidth + (maxWidth - i), 0, (matrix[i][j])); } if (i === 0) { console.log("maxWidth") console.log(maxWidth) for (let k = 0; k < maxWidth; k++) { console.log(matrix) matrix[k].splice(0, maxWidth); // matrix[j].splice(maxWidth + (maxWidth - i), 0, (matrix[i][j])); } } } console.log("Result") console.log(matrix) }; // rotate([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); rotate([[5, 1, 9, 11], [2, 4, 8, 10], [13, 3, 6, 7], [15, 14, 12, 16]]);