解法一
模拟螺旋矩阵数递增的步骤,计算好沿当前方向要走的步数。
class Solution {public int[][] generateMatrix(int n) {int[][] ans = new int[n][n];int l = n;int x = 0, y = -1;int num = 0;while (l > 0) {// 向右for (int i = 0; i < l; ++i) {y++;num++;ans[x][y] = num;}// 向下l--;for (int i = 0; i < l; ++i) {x++;num++;ans[x][y] = num;}// 向左for (int i = 0; i < l; ++i) {y--;num++;ans[x][y] = num;}// 向上l--;for (int i = 0; i < l; ++i) {x--;num++;ans[x][y] = num;}}return ans;}}
