【发布时间】:2017-05-08 00:39:04
【问题描述】:
我试图通过逐行转置和旋转元素来将矩阵旋转 90 度,但转置部分,即第一个 i,j 循环,没有得到保存。
def rotate(matrix)
size = matrix.length
for i in 0..size-1
for j in 0..size-1
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
end
end
if size.even?
for i in 0..size-1
for j in 0..(size-1)/2
matrix[i][j], matrix[i][size-1-j] = matrix[i][size-1-j], matrix[i][j]
end
end
else
for i in 0..size-1
for j in 0..((size-1)/2 + 1)
matrix[i][j], matrix[i][size-1-j] = matrix[i][size-1-j], matrix[i][j]
end
end
end
matrix
end
有人对此有什么解释吗?
【问题讨论】:
-
您没有使用
matrixstdlib 库有什么特别的原因吗?
标签: ruby algorithm matrix transpose substitution