作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
一位 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)
此外,该算法应支持非方阵,因此例如对于 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)
最佳答案
这是我的解决方案(在 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/
我正在尝试创建一个结构,如下面的屏幕截图所示。有没有办法在 JavaScript 中为此构建一个算法,以按时间顺序获取每个红点的 X 和 Y 坐标,以根据特定数量生成无限螺旋? Screenshot
我在 C++ 中有如下代码: for(int x = position.x; x GetValue(tc); } } 它的作用是生成一个梯度噪声值容器。在这样做的同时,它还会使结果围绕震中螺旋
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我是一名优秀的程序员,十分优秀!