Spiral Matrix II

来源:互联网 发布:会员卡读卡数据 编辑:程序博客网 时间:2024/06/07 22:53

Spiral Matrix II

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 ]]
解析:

一圈一圈的填充数组,顺时针方向,注意边界条件。

代码:

class Solution {public:    vector<vector<int>> generateMatrix(int n) {        vector<vector<int>>ans(n,vector<int>(n));                int k=1;        int i=0;        int j=0;        while(k<=n*n)        {            j=i;            while(j<(n-i))            {                ans[i][j]=k++;                 j++;            }            j=i+1;            while(j<(n-1-i))            {                ans[j][n-1-i]=k++;                j++;            }            j=n-1-i;            while(j>i)            {                ans[n-i-1][j]=k++;                j--;            }            j=n-i-1;            while(j>i)            {                ans[j][i]=k++;                j--;            }            i++;        }        return ans;    }};



0 0
原创粉丝点击