首页 > 其他 > 详细

Spiral Matrix II

时间:2014-06-04 19:24:38      阅读:426      评论:0      收藏:0      [点我收藏+]

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,
Given n = 3,

You should return the following matrix:
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
bubuko.com,布布扣
class Solution {
public:
    vector<vector<int> > generateMatrix(int n) 
    {
       vector<vector<int>>  result;
       if(n==0return result;
       
       for(int i=0;i<n;i++)
       {
           vector<int> v;
           for(int j=0;j<n;j++)
            v.push_back(0);
            result.push_back(v);
        }
        int len=n-1;
        int num=1;
        int x=0;
        result[0][0]=1;
        while(len>=1)
        {
            for(int i=0;i<len;i++)
                result[x][x+i]=num++;
            for(int i=0;i<len;i++)
                result[x+i][x+len]=num++;
            for(int i=0;i<len;i++)
                result[x+len][x+len-i]=num++;
            for(int i=0;i<len;i++)
                result[x+len-i][x]=num++;
            len=len-2;
            x++;
        }
        if(len==0) result[x][x]=num;
        return result;
    }
};
bubuko.com,布布扣

Spiral Matrix II,布布扣,bubuko.com

Spiral Matrix II

原文:http://www.cnblogs.com/erictanghu/p/3759429.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!