public class Solution {
public int[][] generateMatrix(int n) {
if (n == 0)
return new int[0][0];
int[][] matrix = new int[n][n];
int up = 0, down = matrix.length - 1;
int total = 1;
while (up < down) {
total = genetare(matrix, up, down, total);
up++;
down--;
}
if (up == down)
matrix[up][up] = total;
return matrix;
}
public int genetare (int[][] matrix, int up, int down, int total) {
for (int i = up; i <= down; i++)
matrix[up][i] = total++;
total--;
for (int i = up; i <= down; i++)
matrix[i][down] = total++;
total--;
for (int i = down; i >= up ; i--)
matrix[down][i] = total++;
total--;
for (int i = down; i > up ; i--)
matrix[i][up] = total++;
return total;
}
}
想法很简单,就是看对于边界条件的判断。
产生一个螺旋矩阵
最新推荐文章于 2021-11-06 11:46:39 发布