leetcode刷题:螺旋矩阵II(模拟法)

给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
leetcode刷题:螺旋矩阵II(模拟法)_第1张图片
leetcode刷题:螺旋矩阵II(模拟法)_第2张图片
leetcode刷题:螺旋矩阵II(模拟法)_第3张图片
**

不断更新边界参数

对边界参数的更新要脱离于循环体

**

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] sm=new int[n][n];
        int t=0,b=n-1,l=0,r=n-1;
        int tar=n*n;
        int num=1;
        while(num<=tar)
        {
            for(int s1=l;s1<=r;s1++)
            {
                sm[t][s1]=num++;
            }
            t++;//对边界参数的更新要脱离于循环体
            for(int s2=t;s2<=b;s2++)
            {
                sm[s2][r]=num++;
            }
            r--;
            for(int s3=r;s3>=l;s3--)
            {
                sm[b][s3]=num++;
            }
            b--;
            for(int s4=b;s4>=t;s4--)
            {
                sm[s4][l]=num++;
            }
            l++;
        }
        return sm;
    }
}

你可能感兴趣的:(LeetCode刷题)