您的位置:首页 > 其它

leetcode——59——Spiral Matrix II

2016-04-17 10:58 351 查看
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) {
if (n <= 0)
return vector<vector<int>>();

vector<vector<int>> matrix(n, vector<int>(n, 0));
int start = 1;

n = n-1;

for (int x = 0, y = 0; x <= n && y <= n; x++, y++)
{
//输出矩阵首行
for (int j = y; j <= n; ++j)
{
matrix[x][j] = start++;
}//while

//输出矩阵最右列
for (int i = x + 1; i <= n; ++i)
{
matrix[i]
= start++;
}//while

//输出矩阵最底行
for (int j = n - 1; j >= y && x != n; --j)
{
matrix
[j] = start++;
}

//输出矩阵最左列
for (int i = n - 1; i > x && y != n; --i)
{
matrix[i][y] = start++;
}

n--;
}//for

return matrix;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: