当前位置:   article > 正文

LeetCode题解(1329):将矩阵按对角线排序(Python)

将矩阵按对角线排序

题目:原题链接(中等)

标签:数组、排序

解法时间复杂度空间复杂度执行用时
Ans 1 (Python) O ( M × N × l o g ( m i n ( M , N ) ) ) O(M×N×log(min(M,N))) O(M×N×log(min(M,N))) O ( m i n ( M , N ) ) O(min(M,N)) O(min(M,N))44ms (97.99%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:
    def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]:
        m, n = len(mat), len(mat[0])

        for d in range(-m + 1, n):
            if d < 0:
                i0, j0, num = -d, 0, min(m + d, n)
            else:
                i0, j0, num = 0, d, min(n - d, m)

            lst = []
            for k in range(num):
                i1, j1 = i0 + k, j0 + k
                lst.append(mat[i1][j1])
            lst.sort()
            for k in range(num):
                i1, j1 = i0 + k, j0 + k
                mat[i1][j1] = lst[k]

        return mat
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/530372
推荐阅读
相关标签
  

闽ICP备14008679号