1. 程式人生 > >LeetCode--59. Spiral Matrix II

LeetCode--59. Spiral Matrix II

題目連結:https://leetcode.com/problems/spiral-matrix-ii/

這個問題雖然是medium,但感覺是LeetCode-54. Spiral Matrix的簡化版,思路可以參考https://blog.csdn.net/To_be_to_thought/article/details/84259654,還是按照相同的思路,程式碼稍微修改一下就行了:

class Solution {
    
    public static int[][] ret;
    
    public int[][] generateMatrix(int n) {
        
        ret=new int[n][n];
        
        recursive(0,0,n-1,n-1,1);
        return ret;
    }
    
    
    public static void recursive(int ltx,int lty,int rbx,int rby,int k)
    {
        if(ltx>rbx || lty>rby)
            return;
 
        for(int i=lty;i<=rby;i++)
        {
            ret[ltx][i]=k;
            k++;
        }
 
        for(int j=ltx+1;j<=rbx;j++)
        {
            ret[j][rby]=k;
            k++;
        }
            
        for(int i=rby-1;i>=lty;i--)
        {
            ret[rbx][i]=k;
            k++;
        }
 
        for(int j=rbx-1;j>ltx;j--)
        {
            ret[j][lty]=k;
            k++;
        }
        
        recursive(ltx+1,lty+1,rbx-1,rby-1,k);
    }
}