Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
Example:
Input: 3 Output: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
设置上下左右四个限制器就行,结束标志是val达到n*n
Success
Runtime: 0 ms, faster than 100.00% of Java online submissions for Spiral Matrix II.
Memory Usage: 34.3 MB, less than 8.33% of Java online submissions for Spiral Matrix II.
class Solution {
public int[][] generateMatrix(int n) {
int[][] matrix=new int[n][n];
int lb=0,rb=n-1,ub=0,bb=n-1;
int x=0,y=0;
int val=1;
while(val<=n*n){
while(val<=n*n&&y<=rb){
matrix[x][y]=val++;
y++;
}
y--;ub++;x++;
while(val<=n*n&&x<=bb){
matrix[x][y]=val++;
x++;
}
x--;rb--;y--;
while(val<=n*n&&y>=lb){
matrix[x][y]=val++;
y--;
}
y++;bb--;x--;
while(val<=n*n&&x>=ub){
matrix[x][y]=val++;
x--;
}
x++;lb++;y++;
}
return matrix;
}
}