Solving Leetcode Interviews in Seconds with AI: Rotate Image
Introduction
In this blog post, we will explore how to solve the LeetCode problem "48" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.
Problem Statement
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
Explanation
- Transpose the matrix: Swap elements across the main diagonal (matrix[i][j] becomes matrix[j][i]).
- Reverse each row: Reverse the order of elements in each row of the transposed matrix. This effectively rotates the matrix 90 degrees clockwise.
- Runtime Complexity: O(n^2), where n is the dimension of the matrix.
- Storage Complexity: O(1) (in-place).
Code
def rotate(matrix):
"""
Rotates a square matrix by 90 degrees clockwise in-place.
Args:
matrix: A list of lists representing the square matrix.
"""
n = len(matrix)
# Transpose the matrix
for i in range(n):
for j in range(i + 1, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
# Reverse each row
for row in matrix:
row.reverse()