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
Sort the Matrix Diagonally: Problem OverviewInput Matrix331122121112Diagonal Highlighting331122121112Diagonal: [3,2,1] → [1,2,3]Sorted Result111122123Each diagonal is sorted independently
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
Asked in
Facebook 35 Amazon 28 Google 22 Microsoft 18
25.0K Views
Medium Frequency
~15 min Avg. Time
892 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen