LeetCode 솔루션 분류
[8/28] 1329. Sort the Matrix Diagonally
본문
Medium
2613202Add to ListShareA 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.
Example 1:
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]]
Example 2:
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]]
Constraints:
m == mat.length
n == mat[i].length
1 <= m, n <= 100
1 <= mat[i][j] <= 100
Accepted
124,633
Submissions
149,366
관련자료
-
링크
댓글 1
학부유학생님의 댓글
- 익명
- 작성일
Runtime: 132 ms, faster than 55.66% of Python3 online submissions for Sort the Matrix Diagonally.
Memory Usage: 14.3 MB, less than 76.31% of Python3 online submissions for Sort the Matrix Diagonally.
Memory Usage: 14.3 MB, less than 76.31% of Python3 online submissions for Sort the Matrix Diagonally.
class Solution:
def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]:
ROW, COL = len(mat), len(mat[0])
# iterate ROWs first
for row in range(ROW):
self.sortAndReplace(row, 0, mat)
# iterate COLs
for col in range(1, COL):
self.sortAndReplace(0, col, mat)
return mat
def sortAndReplace(self, start_row, start_col, mat):
ROW, COL = len(mat), len(mat[0])
temp = []
r,c = start_row, start_col
while r < ROW and c < COL:
temp.append(mat[r][c])
r += 1
c += 1
temp = sorted(temp, reverse = True)
r,c = start_row, start_col
while r < ROW and c < COL:
mat[r][c] = temp.pop()
r += 1
c += 1