您的位置:首页 > 其它

LeetCode 59 - Spiral Matrix II

2016-03-11 16:41 537 查看

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 ]
]


My Code

class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int> > matrix(n, vector<int>(n, 0));

int num = 1;
for (int i = 0; i < (n + 1) / 2; i++)
{
// Up
for (int j = i; j <= n - 1 - i; j++)
matrix[i][j] = num++;
// Right
if (n - 1 - i >= 0 && n - 1 - i >= i)
for (int j = i + 1; j <= n - 2 - i; j++)
matrix[j][n-1-i] = num++;
// Below
if (n - 1 - i > i)
for (int j = n - 1 - i; j >= i; j--)
matrix[n-1-i][j] = num++;
// Left
if (n - 1 - i > i)
for (int j = n - 2 - i; j >= i + 1 ; j--)
matrix[j][i] = num++;
}

return matrix;
}
};
Runtime: 4 ms

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