lintcode-螺旋矩阵 II

来源:互联网 发布:哪些是淘宝禁售品 编辑:程序博客网 时间:2024/06/01 09:19

给你一个数n生成一个包含1-n^2的螺旋形矩阵
样例
n = 3
矩阵为
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]

class Solution {public:    /**     * @param n an integer     * @return a square matrix     */    vector<vector<int> > generateMatrix(int n) {        // Write your code here        vector<vector<int> > vec(n,vector<int>(n,0));        if(n<=0) return vec;        int row=n;//行数        int col=n;//列数        int left=0,top=0;//左上角坐标(left,top)        int bottom=row-1,right=col-1;//右下角坐标(bottom,right)        int k=1;        while(left<=bottom  && top<=right)        {        for(int i=top;i<=right;i++) vec[left][i]=k++;//从左到右打印     for(int i=left+1;i<=bottom;i++) vec[i][right]=k++;//从上到下打印       if(left!=bottom)        for(int i=right-1;i>=top;i--) vec[bottom][i]=k++;//从右往左打印            if(top!=right)             for(int i=bottom-1;i>left;i--) vec[i][top]=k++;//从左向上打印            left++;            top++;            bottom--;            right--;        }        return vec;    }};
0 0
原创粉丝点击