刚刚在 Leetcode 上做了一下螺旋矩阵的题目,用的是模拟路径来变换 x y 坐标的办法。
做完之后去网上找了一下别人的算法,发现也几乎都是这个思路(不过他们模拟路径用的方法比我高级多了)。
然后我突然想到,如果给定一个矩阵边长 n ,生成的矩阵是确定的,那么在指定的坐标 (x y) 处的数也一定是确定的,即 f(n x y) 是一个确定的函数。那有没有可能求出这个函数的代数表达式呢?
可以。比如你生成数字的函数是 g(l),你实际需要找的关系是如何通过 n.x.y 得到 l 。外面走完的一堆圈是等差数列,再加上中间走到一半的圈,蛮好写的关系。这个函数其实就是 g(l(n.x.y))这个样子