Given a square matrix of integers matrix, with n rows and n columns, rotate it by 90 degrees clockwise: a quarter turn to the right, as you would turn a picture.
A matrix is a list of rows, and each row is a list of integers. Rows are numbered from 0, top to bottom, and columns from 0, left to right.
Rotate the matrix in place: move the numbers inside matrix itself, without building a second matrix. The function returns nothing; the output in the examples is matrix after the call.
Example 1:
Input: matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] Output: [ [7, 4, 1], [8, 5, 2], [9, 6, 3] ] Explanation: The left column, read from the bottom up (7, 4, 1), becomes the top row, and the top row (1, 2, 3) becomes the right column.
Example 2:
Input: matrix = [ [5, 1, 9, 11], [2, 4, 8, 10], [13, 3, 6, 7], [15, 14, 12, 16] ] Output: [ [15, 13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7, 10, 11] ] Explanation: Every number moves a quarter turn around the center. The corners show it best: 5 goes to the top-right corner, 11 to the bottom-right, 16 to the bottom-left and 15 to the top-left.
Example 3:
Input: matrix = [ [1, 2], [3, 4] ] Output: [ [3, 1], [4, 2] ] Explanation: Each number moves one corner clockwise: 1 to the top-right, 2 to the bottom-right, 4 to the bottom-left and 3 to the top-left.
Constraints:
matrixhasnrows and every row hasnvalues, with1 <= n <= 500.- Every value is an integer between -1000 and 1000; values can be negative and can repeat.
Note:
Your algorithm should run in O(n2) time and use O(1) extra space: it only moves numbers around inside matrix.
Free plan: 30 tutor messages. Premium is unlimited.
