Spiral Matrix II

没什么好说的, 旋转填充N宫格

 

my solution (4ms)

可以用一个 while + 4个for 来做, 这样是最直观, 最好理解的

但是不太想这样, 感觉太丑陋了... 所以想了一下办法在一个循环中实现它

前进有4个方向, 每次的位移是一定的, 而且是按照循环来做位移

所以用了取余和数组来确定每一次的位移是正确的

然后是将每个方向的步数看做同一个值, 所以求取步数在之前

比如 n = 3:

则是按照 1, 2 3, 4 ... ( (4 * n - 1) )这样的概念来前进, 但是问题在于

如果将计算步数的操作放到了最后, 那么 3 就会被错误计算, 所以保存了一下最后一次越界前的值

(我隐约感觉这里应该能够优化, 毕竟这样写出来的代码不易理解)

结果没什么好说的

 

the best solution (4ms)

我不喜欢丑陋的 while for for for for :( , 就不分析了