LeetCode-59螺旋矩阵II-中等

标题:59螺旋矩阵II-中等

题目

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

示例1

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

示例2

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

提示

  • 1 <= n <= 20

代码Java

public int[][] generateMatrix(int n) {
    int[][] ans = new int[n][n];
    int x = 1;
    int top = 0;
    int right = n - 1;
    int under = n - 1;
    int left = 0;
    for (int i = 0; i < n / 2; i++) {
        // 上
        for (int j = left; j < right; j++) {
            ans[top][j] = x++;
        }
        // 右
        for (int j = top; j < under; j++) {
            ans[j][right] = x++;
        }
        // 下
        for (int j = right; j > left; j--) {
            ans[under][j] = x++;
        }
        // 左
        for (int j = under; j > top; j--) {
            ans[j][left] = x++;
        }
        top++;
        right--;
        under--;
        left++;
    }
    if (n % 2 == 0)
        return ans;
    else {
        ans[n / 2][n / 2] = x;
        return ans;
    }
}

你可能感兴趣的:(LeetCode,leetcode,矩阵,算法)