LeetCode 59. Spiral Matrix II(반복)

1381 단어 LeetCode
제목 출처:https://leetcode.com/problems/spiral-matrix-ii/
문제 설명

59. Spiral Matrix II


Medium
Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
Example:
Input: 3
Output:
[
 [ 1, 2, 3 ],
 [ 8, 9, 4 ],
 [ 7, 6, 5 ]
]
------------------------------------------------------------
제목
정수 n 을 주고 n 을 반환합니다×n의 행렬, 그 중에서 원소가 1~n*n인 시계 방향으로 바깥에서 안쪽으로 나선형으로 배열되다
------------------------------------------------------------
생각
차례로 돌아가다.먼저 외곽을 채운 다음에 내부 사각형을 차례로 호출합니다.
------------------------------------------------------------
코드
class Solution {
    private void recuFill(int[][] mat, int x, int m, int cnt)
    {
        if (m == 0)
        {
            return;
        }
        else if (m == 1)
        {
            mat[x][x] = cnt;
            return;
        }
        int i = 0;
        for (i=x; ix; i--)
        {
            mat[x+m-1][i] = cnt++;
        }
        for (i=x+m-1; i>x; i--)
        {
            mat[i][x] = cnt++;
        }
        recuFill(mat, x+1, m-2, cnt);
    }    

    public int[][] generateMatrix(int n) {
        int[][] ret = new int[n][n];
        recuFill(ret, 0, n, 1);
        return ret;
    }
}

좋은 웹페이지 즐겨찾기