gpt4 book ai didi

ruby - 如何使用 Ruby 旋转此二维数组?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:26 25 4
gpt4 key购买 nike

我正在解决一些练习题以提高我的 Ruby 技能,并且我正在解决我必须将二维数组旋转 90 度的问题。这是输入:

image = [
[1,2,3,4],
[5,6,7,8],
[9,0,1,2],
[3,4,5,6]
]

预期的输出是:

image = [
[3,9,5,1],
[4,0,6,2],
[5,1,7,3],
[6,2,8,4]
]

这是我编写的打印出错误输出的代码:

def matrix(image)
y = image.length
for i in 0..y-1
for j in 0..y-1
image[i][j] = image[i][y-j-1]
end
end
image
end

这是该代码的输出:

image = [
[4, 3, 3, 4],
[8, 7, 7, 8],
[2, 1, 1, 2],
[6, 5, 5, 6]
]

有人可以向我解释我做错了什么吗?

最佳答案

我会使用 Array#transpose :

image = [
[1,2,3,4],
[5,6,7,8],
[9,0,1,2],
[3,4,5,6]
]

image.transpose.map(&:reverse)
# => [[3, 9, 5, 1], [4, 0, 6, 2], [5, 1, 7, 3], [6, 2, 8, 4]]

关于ruby - 如何使用 Ruby 旋转此二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com