用java写一个求解n阶螺旋矩阵问题的代码
时间: 2024-03-17 13:46:11 浏览: 16
好的,以下是一个Java代码示例,用于生成n阶螺旋矩阵:
```java
public class SpiralMatrix {
public int[][] generateMatrix(int n) {
int[][] matrix = new int[n][n];
int num = 1;
int left = 0, right = n - 1, top = 0, bottom = n - 1;
while (left <= right && top <= bottom) {
for (int i = left; i <= right; i++) {
matrix[top][i] = num++;
}
top++;
for (int i = top; i <= bottom; i++) {
matrix[i][right] = num++;
}
right--;
for (int i = right; i >= left && top <= bottom; i--) {
matrix[bottom][i] = num++;
}
bottom--;
for (int i = bottom; i >= top && left <= right; i--) {
matrix[i][left] = num++;
}
left++;
}
return matrix;
}
}
```
这个方法使用了四个指针,从左上角开始,依次按照右,下,左,上的顺序遍历矩阵。在每个方向上,都将当前的数字填入矩阵中。