Given a positive integer n
, generate an n x n
matrix
filled with elements from 1
to n2
in spiral order.
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
题目链接:https://leetcode.com/problems/spiral-matrix-ii/
题目大意:按题意生成n*n的螺旋矩阵
题目分析:按题意模拟,右下左上循环赋值
0ms,时间击败100%
class Solution {
public int[][] generateMatrix(int n) {
int[][] ans = new int[n][n];
int tot = n * n, cur = 1, x = 0, y = 0;
while (cur <= tot) {
while (cur <= tot && y < n && ans[x][y] == 0) {
ans[x][y++] = cur++;
}
x++;
y--;
while (cur <= tot && x < n && ans[x][y] == 0) {
ans[x++][y] = cur++;
}
y--;
x--;
while (cur <= tot && y >= 0 && ans[x][y] == 0) {
ans[x][y--] = cur++;
}
x--;
y++;
while (cur <= tot && x >= 0 && ans[x][y] == 0) {
ans[x--][y] = cur++;
}
y++;
x++;
}
return ans;
}
}