您的位置:首页 > 其它

59. Spiral Matrix II

2016-12-13 14:55 387 查看
public  int[][] generateMatrix(int n) {
if(n <= 0) {
return new int[0][0];
}
int start = 1;
int[][] matrix = new int

;
int count = (n%2 == 0 ?n/2:n/2+1);
for(int i = 0; i < count;i++) {
start = fillNumber(matrix, i,i,n-1-i,n-1-i,start);
}
return matrix;
}
public int fillNumber(int[][] matrix, int rol1,int col1,int rol2, int col2,int start) {
if(rol1 == rol2 && col1 == col2 && rol1 == col1) {
matrix[rol1][rol1] = start;
}else {
for(int j = col1; j <= col2; j++ ) {
matrix[rol1][j] = start++;
}
for(int i = rol1+1; i < rol2; i++) {
matrix[i][col2] = start++;
}
for(int j = col2; j >= col1; j--) {
matrix[rol2][j] = start++;
}
for(int i = rol2-1; i >rol1; i--) {
matrix[i][col1] = start++;
}
}
return start;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: