59. 螺旋矩阵 II

59. 螺旋矩阵 II

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

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int top=0;
        int bottom=n-1;
        int left=0;
        int right=n-1;
        int num=1;
        vector<vector<int>> res(n,vector<int>(n,0));
        while(num<=n*n){
            for(int i=left;i<=right;i++){
                res[top][i]=num++;
            }
            top++;

            for(int j=top;j<=bottom;j++){
                res[j][right]=num++;
            }
            right--;

            for(int i=right;i>=left;i--){
                res[bottom][i]=num++;
            }
            bottom--;

            for(int i=bottom;i>=top;i--){
                res[i][left]=num++;
            }
            left++;
        }
        return res;
    }
};

你可能感兴趣的:(矩阵,算法,c++)