59. 螺旋矩阵 II

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

示例 1:

输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
示例 2:

输入:n = 1
输出:[[1]]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/spiral-matrix-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题方法及思路

跟昨天 54. 螺旋矩阵的方法一模一样,就不多做赘述。只说一下两点,一是当n=1的时候直接返回[[1]];二是用count来计数,每往数组里面存入一个元素,count++。

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] matrix = new int[n][n];
        int count = 1;
        if (n == 1) {
            matrix[0][0] = 1;
            return matrix;
        }
        for (int i = 0; i < n; i++) {
            // 加上行
            for (int j = i; j < n; j++) {
                matrix[i][j] = count;
                count++;
            }
            // 加右列
            for (int k = i + 1; k < n; k++) {
                matrix[k][n - 1] = count;
                count++;
            }
            // 加下行
            for (int r = n - 2; r >= i; r--) {
                matrix[n - 1][r] = count;
                count++;
            }
            // 加左列
            for (int s = n - 2; s >= i + 1; s--) {
                matrix[s][i] = count;
                count++;
            }
            if (n == 0) {
                break;
            }
            n--;
        }

        return matrix;
    }
}

结果如下:

你可能感兴趣的:(59. 螺旋矩阵 II)