跳到主要内容

1329.将矩阵按对角线排序

链接:1329.将矩阵按对角线排序
难度:Medium
标签:数组、矩阵、排序
简介:给你一个 m * n 的整数矩阵 mat ,请你将同一条 矩阵对角线 上的元素按升序排序后,返回排好序的矩阵。

题解 1 - python

  • 编辑时间:2024-04-29
  • 执行用时:50ms
  • 内存消耗:16.85MB
  • 编程语言:python
  • 解法介绍:遍历。
class Solution:
def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]:
n, m = len(mat), len(mat[0])
def next(x: int, y: int) -> Tuple[int, int]:
return (x + 1, y + 1) if x + 1 < n and y + 1 < m else (-1, -1)
def sort(x: int, y : int):
arr = []
i, j = x, y
while i != -1:
arr.append(mat[i][j])
i, j = next(i, j)
arr.sort()
i, j = x, y
while i != -1:
mat[i][j] = arr[i - x]
i, j = next(i, j)
for j in range(m): sort(0, j)
for i in range(1, n): sort(i, 0)
return mat