螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。如下图
可知N=4的螺旋矩阵由两个螺旋矩阵框组成,当N= n时,矩阵框为(n+1)/2 个,从外至内一个框一个框输出,每个框又分一条边一条边输出。
public class Square_spiral {
public static void main(String[] args) {
int[][] arr = creatSquareSpiral(4);
for(int i = 0;i < arr.length;i ++){
for(int j = 0;j < arr[i].length;j ++)
System.out.print(arr[i][j] + " ");
System.out.println();
}
}
public static int[][] creatSquareSpiral(int n){
int[][] arr = new int[n][n];
int i,j,k = 1;
for(i = 0;i < (n+1)/2;i ++){
for(j = i;j < n - i;j ++)
arr[i][j] = k ++;
for (j = i + 1;j < n - i;j ++)
arr[j][n-i-1] = k ++;
for (j = n - i - 2;j >= i;j --)
arr[n-i-1][j] = k ++;
for (j = n - i - 2;j >= i + 1;j --)
arr[j][i] = k ++;
}
return arr;
}
}