这是一个创建于 3102 天前的主题,其中的信息可能已经有所发展或是发生改变。
刚刚在 Leetcode 上做了一下螺旋矩阵的题目,用的是模拟路径来变换 x y 坐标的办法。
做完之后去网上找了一下别人的算法,发现也几乎都是这个思路(不过他们模拟路径用的方法比我高级多了)。
然后我突然想到,如果给定一个矩阵边长 n ,生成的矩阵是确定的,那么在指定的坐标 (x, y) 处的数也一定是确定的,即 f(n, x, y) 是一个确定的函数。那有没有可能求出这个函数的代数表达式呢?
PS: 给定边长 n ,从外向内顺时针生成 n * n 矩阵
如给定 4 ,则生成
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
怎么用不了 Markdown 了!!
2 条回复 • 2016-06-07 00:58:17 +08:00
|
|
1
debiann 2016-06-07 00:50:59 +08:00 via iPhone
可以。比如你生成数字的函数是 g(l),你实际需要找的关系是如何通过 n.x.y 得到 l 。外面走完的一堆圈是等差数列,再加上中间走到一半的圈,蛮好写的关系。这个函数其实就是 g(l(n.x.y))这个样子
|
|
|
2
debiann 2016-06-07 00:58:17 +08:00 via iPhone
@ debiann 最后那个 g(l(n.x.y))可能会引起混淆,写得不合适,忽略吧
|