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 n x n
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))