[2021][01] Sort the Matrix Diagonally


問題情報



問題の概要


マトリクスが与えられた場合、対角線方向の昇順で正のマトリクスを返す問題.

こうそくじょうけん

  • メートルが総裁です.
  • nはカラムの長さです.
  • 1 <= m,n <= 100
  • 1 <= mat[i][j] <= 100
  • 方法


    最初に問題を見たときは、少し複雑に感じるかもしれませんが、ソートを開始した位置0行である可能性があります.0列の位置(行、列)配列に格納され、列 class Solution: def diagonalSort(self, mat: List[List[int]]) -> List[List[int]]: rows = len(mat) cols = len(mat[0]) answers = [[0 for _ in range(cols)] for _ in range(rows)] start_points = [(0, x) for x in range(cols)] for row in range(1, rows): start_points.append((row, 0)) for start_point in start_points: row, col = start_point points = [] values = [] while row < rows and col < cols: points.append((row, col)) values.append(mat[row][col]) row += 1 col += 1 values.sort() for idx, point in enumerate(points): answers[point[0]][point[1]] = values[idx] return answers