给你一个数n
生成一个包含1-n^2
的螺旋形矩阵
样例
n = 3
矩阵为
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
完全是一道数学的归纳题
public class Solution { /* * @param n: An integer * @return: a square matrix */ public int[][] generateMatrix(int n) { // write your code here //第layer层 从左上到右上 ans[layer-1][layer-1]到ans[layer-1][n-1-layer+1-1]//第layer层 从右上到右下 ans[layer-1][n-1-layer+1] 到 ans[n-1-layer+1-1][n-1-layer+1] //第layer层 从右下到左下ans[n-1-layer+1][n-1-layer+1]到 ans[n-1-layer+1][layer] //第layer层 从左下到左上从 ans[n-1-layer+1][layer-1] 到 ans[layer][layer-1] int[][] ans = new int[n][n]; int tempn = 1; for(int layer = 1;layer<=(n+1)/2;layer++){ for(int i = layer-1;i<=n-1-layer+1-1;i++){ ans[layer-1][i] = tempn++; } for(int i = layer-1;i<=n-1-layer+1-1;i++){ ans[i][n-1-layer+1] = tempn++; } for(int i = n-1-layer+1;i>=layer; i--){ ans[n-1-layer+1][i] = tempn++; } for(int i = n-1-layer+1;i>=layer; i--){ ans[i][layer-1] = tempn++; } } if(n%2 == 1){ ans[(n-1)/2][(n-1)/2] = n*n; } return ans; } }