Sort the Matrix Diagonally - Problem
A matrix diagonal is a diagonal line of cells starting from some cell in either the topmost row or leftmost column and going in the bottom-right direction until reaching the matrix's end.
For example, the matrix diagonal starting from mat[2][0], where mat is a 6 x 3 matrix, includes cells mat[2][0], mat[3][1], and mat[4][2].
Given an m x n matrix mat of integers, sort each matrix diagonal in ascending order and return the resulting matrix.
Input & Output
Example 1 — Basic 3x3 Matrix
$
Input:
mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]]
›
Output:
[[1,1,1,1],[1,2,2,2],[1,2,3,3]]
💡 Note:
Main diagonal [3,2,1] becomes [1,2,3]. Diagonal starting at [0,1]: [3,2,1] becomes [1,2,3]. Each diagonal is sorted independently while maintaining structure.
Example 2 — Rectangular Matrix
$
Input:
mat = [[11,25,66,1,69,7],[23,55,17,45,15,52],[75,31,36,44,58,8],[22,27,33,25,68,4],[84,28,14,11,5,50]]
›
Output:
[[5,17,4,1,52,7],[11,11,25,45,8,69],[14,23,25,44,58,15],[22,27,31,36,50,66],[84,28,75,33,55,68]]
💡 Note:
Each diagonal is sorted independently. The main diagonal [11,55,36,25,5] becomes [5,11,25,36,55].
Example 3 — Single Row
$
Input:
mat = [[1,2,3,4]]
›
Output:
[[1,2,3,4]]
💡 Note:
Each element forms its own diagonal, so no sorting is needed. Matrix remains unchanged.
Constraints
- m == mat.length
- n == mat[i].length
- 1 ≤ m, n ≤ 100
- 1 ≤ mat[i][j] ≤ 100
Visualization
Tap to expand
Understanding the Visualization
1
Input Matrix
Original matrix with unsorted diagonals
2
Identify Diagonals
Group elements by diagonal lines
3
Sorted Result
Each diagonal sorted in ascending order
Key Takeaway
🎯 Key Insight: Elements on the same diagonal have the same (row - col) value, allowing efficient grouping and sorting
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code