腾讯//螺旋矩阵
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
class Solution {
public int[][] generateMatrix(int n) {
if(n < 0)
return null;
int [][] matrix = new int[n][n];
if(n == 0) return matrix;
int circle = 0, num = 1;
while(circle <= (n-1)/2){
int i = circle, j = circle;
matrix[i][j] = num++;
while(j<n-i-1)
matrix[i][++j] = num++;
while(i<j)
matrix[++i][j] = num++;
while(j>n-i-1)
matrix[i][--j] = num++;
while(i > j+1)
matrix[--i][j] = num++;
circle++;
}
return matrix;
}
}