gpt4 book ai didi

algorithm - 螺旋式循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:22 25 4
gpt4 key购买 nike

一位 friend 需要一种算法,让他循环遍历 NxM 矩阵的元素(N 和 M 是奇数)。我想出了一个解决方案,但我想看看我的 SO'ers 同事是否能想出更好的解决方案。

我发布了我的解决方案作为这个问题的答案。

示例输出:

对于 3x3 矩阵,输出应该是:

(0, 0)(1, 0)(1, 1)(0, 1)(-1, 1)(-1, 0)(-1, -1)(0, -1)(1, -1)

3x3 matrix

此外,该算法应支持非方阵,因此例如对于 5x3 矩阵,输出应为:

(0, 0)(1, 0)(1, 1)(0, 1)(-1, 1)(-1, 0)(-1, -1)(0, -1)(1, -1)(2, -1)(2, 0)(2, 1)(-2, 1)(-2, 0)(-2, -1)

5x3 matrix

最佳答案

这是我的解决方案(在 Python 中):

def spiral(X, Y):
x = y = 0
dx = 0
dy = -1
for i in range(max(X, Y)**2):
if (-X/2 < x <= X/2) and (-Y/2 < y <= Y/2):
print (x, y)
# DO STUFF...
if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y):
dx, dy = -dy, dx
x, y = x+dx, y+dy

关于algorithm - 螺旋式循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/398299/

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