Explore diverse LeetCode solutions in Python, C++, JavaScript, SQL, and TypeScript. Ideal for interview prep, learning, and code practice in multiple programming languages. Github Repo Link
You are given an nxn
2D matrix
representing an image, rotate the image by 90 degrees (clockwise).
You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.
Example 1:
Input: matrix = [[1,2,3],[4,5,6],[7,8,9]] Output: [[7,4,1],[8,5,2],[9,6,3]]
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]]
Constraints:
n == matrix.length == matrix[i].length
1 <= n <= 20
-1000 <= matrix[i][j] <= 1000
内容目录
TogglePython
from typing import List # time complexity: O(n^2) # space complexity: O(n^2) class Solution: def rotate(self, matrix: List[List[int]]) -> None: ROW = len( matrix) COL = len(matrix[0]) newMatrix = [[0 for _ in range(COL)] for _ in range(ROW)] for r in range(ROW): for c in range(COL): newMatrix[ c][ROW - r - 1] = matrix[r][c] return # time complexity: O(n^2) # space complexity: O(1) class Solution: def rotate(self, matrix: List[List[ int]]) -> None: n = len(matrix) for r in range(n // 2): for c in range(r, n - r - 1): matrix[r][c], matrix[c ][n-1-r] = matrix[c][n-1-r], matrix[r][c] matrix[r][c], matrix[n-1-r][n-1 - c ] = matrix[n-1-r][n-1-c], matrix[r][c] matrix[r][c], matrix[n-1-c][r] = matrix[n-1 -c][r], matrix[r][c] return matrix matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(Solution().rotate (matrix)) matrix = [[5, 1, 9, 11], [2, 4, 8, 10], [13, 3, 6, 7], [15, 14, 12, 16]] print(Solution ().rotate(matrix))