59. 螺旋矩阵 II

//20220402
题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
题目链接:点我

解题思路:

  • 模拟
  • 代码如下:
class Solution {
    public int[][] generateMatrix(int n) {
        int[][] mask = new int[n][n];
        int[][] res = new int[n][n];
        int count = 1;
        for(int i = 0;i<n-i;++i){
            
            for(int j = i;j<n-i;++j){//top
                if(mask[i][j]==0){
                    res[i][j] = count++;//赋值 
                    mask[i][j] = 1;
                }
            }

            for(int j = i;j<n-i;++j){//right
                if(mask[j][n-i-1]==0){
                    res[j][n-i-1] = count++;//赋值 
                    mask[j][n-i-1] = 1;//记录防止重复
                }
            }

            for(int j = n-i-1;j>=i;--j){//bottom
                if(mask[n-i-1][j]==0){
                    res[n-i-1][j] = count++;//赋值 
                    mask[n-i-1][j] = 1;//记录防止重复
                }
            }

            for(int j = n-i-1;j>=i;--j){//left
                if(mask[j][i]==0){
                    res[j][i] = count++;//赋值 
                    mask[j][i] = 1;//记录防止重复
                }
            }

        }
        return res;
    }
}

我很棒!
加油!

posted @ 2022-04-02 21:19  醉生梦死_0423  阅读(18)  评论(0编辑  收藏  举报