1329. 将矩阵按对角线排序

将矩阵按对角线排序

解法一: 模拟

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func diagonalSort(mat [][]int) [][]int {
m := len(mat)
n := len(mat[0])
lists := make([][]int, m+n)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
lists[i-j+n] = append(lists[i-j+n], mat[i][j])
}
}
for i := m + n - 1; i > 0; i-- {
sort.Ints(lists[i])
}
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
mat[i][j] = lists[i-j+n][0]
lists[i-j+n] = lists[i-j+n][1:]
}
}
return mat
}
作者

wuhunyu

发布于

2024-04-29

更新于

2024-05-01

许可协议