题目描述:
给你一个正整数 n
,生成一个包含 1
到n^2所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
class Solution {
public int[][] generateMatrix(int n) {
int row = n; //行数
int col = n; //列数
int[][] matrix = new int[row][col];
int count=1;
int startr=0; //确定当前的起始行坐标
int endr=row-1; //确定当前的结束行坐标
int startc=0; //确定当前的起始列坐标
int endc=col-1; //确定当前结束的列坐标
while(true){
//往右边走 列坐标增加 行坐标不变
for(int j=startc;j<=endc;j++){
matrix[startr][j]=count++;
}
startr++;
//往下走 列坐标不变 行坐标增加
for(int i=startr;i<=endr;i++){
matrix[i][endc]=count++;
}
endc--;
//往左走 行坐标不变 列坐标减少
for(int j=endc;j>=startc;j--){
matrix[endr][j]=count++;
}
endr--;
//往上走 列坐标不变 行坐标减少
for(int i=endr;i>=startr;i--){
matrix[i][startc]=count++;
}
startc++;
if(count>n*n){
break;
}
}
return matrix;
}
}
太久没刷题,脑子木了。