我正在解决一个锻炼程序。我想编写一个接受整数(例如i
)并返回i*i
螺旋矩阵的函数。
例如:
如果我是2,它应该返回:
[[1, 2],
[4, 3]]
如果我3岁,它应该返回:
[[1, 2, 3],
[8, 9, 4],
[7, 6, 5]]
如果我4岁,应该返回:
[[1, 2, 3, 4],
[12, 13, 14, 5],
[11, 16, 15, 6],
[10, 9, 8, 7]]
以此类推。
我的解决方案:
print([[x+1 for x in range(x,input+x)] if x %2==0 else [x+1 for x in range(x,input+x)][::-1] for x in range(0, input*input, input)])
但是它不能给我正确的输出。
此外,我觉得它有点肿且效率低下。有没有更有效的方法?如果是这样,您能帮我吗?