59. Spiral Matrix II

来源:互联网 发布:校园网络拓扑设计 编辑:程序博客网 时间:2024/06/16 19:50

挺简单的,不过要考虑边缘情况。注意细节

class Solution {public:    vector<vector<int>> generateMatrix(int n) {        vector<int> temp(n,0);        vector<vector<int>> result;        for(int i=0;i<n;i++)            result.push_back(temp);        int step=n;        int direction=0;        int startNum=1;        int startFirst=0;        int startSecond=-1;        while(step!=0)        {            if(direction==0)            {                startSecond+=1;                int temp=step;                while(temp--)                    result[startFirst][startSecond++]=startNum++;                startSecond--;                direction=1;                step--;            }            else if(direction==1)            {                startFirst+=1;                int temp=step;                while(temp--)                    result[startFirst++][startSecond]=startNum++;                startFirst--;                direction=2;            }             else if(direction==2)            {                startSecond-=1;                int temp=step;                while(temp--)                    result[startFirst][startSecond--]=startNum++;                startSecond++;                direction=3;                step--;            }            else            {                startFirst-=1;                int temp=step;                while(temp--)                    result[startFirst--][startSecond]=startNum++;                startFirst++;                direction=0;            }        }        return result;    }};
0 0
原创粉丝点击