力扣59. 螺旋矩阵 II

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

水题。。。想起以前被回型矩阵蛇形矩阵各种花里胡哨矩阵支配的恐惧。。

模拟一下就好了,新学会了用vector定义二维数组

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> ans(n, vector<int>(n, 0));//vector定义二维数组
        int now=1,nx=0,ny=0;
        int tp=1;//1是往右 2是往下 3是往左 4是往上
        
        while(now<=n*n){
            if(ans[nx][ny]==0)ans[nx][ny]=now++;
           if(tp==1){
               ny++;
               if(ny==n||ans[nx][ny]!=0){
                   nx++;tp=2;ny--;
               }
           }
           else if(tp==2){
               nx++;
               if(nx==n||ans[nx][ny]!=0){
                   ny--;tp=3;nx--;
               }
           }
           else if(tp==3){
               ny--;
               if(ny== -1||ans[nx][ny]!=0){
                   nx--;tp=4;ny++;
               }
           }
           else if(tp==4){
               nx--;
               if(nx== -1||ans[nx][ny]!=0){
                   ny++;tp=1;nx++;
               }
           }
        }
        return ans;
    }
};

 

posted @ 2022-03-01 18:03  小草今天又在摸鱼吗  阅读(22)  评论(0)    收藏  举报