题意:
给定一个整数n,生成一个以螺旋顺序填充从1到n 2元素的正方形矩阵。
例如,
n=3,
您应该返回以下矩阵:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
这个代码中,当n为基数时,最后col会比scol小一位,最中间那点手动加上
public class Solution {
public int[][] generateMatrix(int n) {
int g[][] = new int[n][n];
if(n<1)return g;
int cnt=1;
int row = n-1,col = n-1;
int srow=0,scol=0;
while(cnt<n*n){
for(int i=scol;i<=col-1;i++){
g[srow][i] = cnt++;
}
for(int i=srow;i<=row-1;i++){
g[i][col] = cnt++;
}
for(int i=col;i>=scol+1;i--){
g[row][i] = cnt++;
}
for(int i=row;i>=srow+1;i--){
g[i][scol] = cnt++;
}
col--;
srow++;
row--;
scol++;
}
if(cnt==n*n){
g[srow][scol] = n*n;
}
return g;
}
}