3446. 按对角线进行矩阵排序
不废话,直接放代码
# @param {Integer[][]} grid
# @return {Integer[][]}
def sort_matrix(grid)
h1 = {}
h2 = {}
h3 = {}
for i in 0...grid.length
for j in 0...grid[0].length
if i == j
h1[[i, j]] = grid[i][j]
end
end
end
for l1 in 1..grid.length - 1
h2[l1] = {}
h3[l1] = {}
for i in 0...grid.length
for j in 0...grid[0].length
if i - j == l1
h2[l1][[i, j]] = grid[i][j]
elsif j - i == l1
h3[l1][[i, j]] = grid[i][j]
end
end
end
end
a1 = h1.values.sort.reverse
a2 = h1.keys
for i in 0...a1.length
grid[a2[i][0]][a2[i][1]] = a1[i]
end
h2.each_pair do |k, v|
x1 = v.keys
x2 = v.values.sort.reverse
for i in 0...x1.length
grid[x1[i][0]][x1[i][1]] = x2[i]
end
end
h3.each_pair do |k, v|
x1 = v.keys
x2 = v.values.sort
for i in 0...x1.length
grid[x1[i][0]][x1[i][1]] = x2[i]
end
end
grid
end