Leetcode59(c++).
Spiral Matrix II
Given a positive integer n, generate an n x n matrix filled with elements from 1 to n2 in spiral order.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/spiral-matrix-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Example 1:
Input: n = 3
Output: [[1,2,3],[8,9,4],[7,6,5]]
Example 2:
Input: n = 1
Output: [[1]]
Constraints:
1 <= n <= 20
Code:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> result(n,vector<int> (n,0));
int count = 1;
int startx = 0, starty = 0;
int loop = n/2;
int offset = 1;
int mid = n/2;
int i, j;
while(loop--){
i = startx;
j = starty;
for(; j<starty+n-offset; j++)
result[startx][j] = count++;
for(; i<startx+n-offset; i++)
result[i][j] = count++;
for(; j>starty; j--)
result[i][j] = count++;
for(; i>startx; i--)
result[i][j] = count++;
startx++;
starty++;
offset += 2;
}
if(n%2) result[mid][mid] = count;
return result;
}
};