Spiral Matrix II -- LeetCode

2014-11-24 00:41:49 · 作者: · 浏览: 0
原题链接: http://oj.leetcode.com/problems/spiral-matrix-ii/
这道题跟Spiral Matrix很类似,只是这道题是直接给出1到n^2,然后把这些数按照螺旋顺序放入数组中。思路跟Spiral Matrix还是一样的,就是分层,然后按照上右下左的顺序放入数组中。每个元素只访问一次,时间复杂度是O(n^2)。代码如下:
public int[][] generateMatrix(int n) {
    if(n<0)
        return null;
    int[][] res = new int[n][n];
    int levelNum = n/2;
    int num = 1;
    for(int l=0;l
  
=l;i--) { res[n-1-l][i] = num++; } for(int i=n-2-l;i>l;i--) { res[i][l] = num++; } } if(n%2==1) { res[levelNum][levelNum] = num; } return res; }
这种题目就是简单的数组操作,主要是得细心,注意数组下标即可。