给定一个整数m生成一个以1开始的n*n的螺型填充矩阵用JAVA
时间: 2024-05-06 07:19:49 浏览: 99
以下是一个Java实现:
```java
public static void generateSpiralMatrix(int m, int n) {
int[][] matrix = new int[n][n];
int num = 1;
int rowStart = 0, rowEnd = n - 1;
int colStart = 0, colEnd = n - 1;
while (num <= n * n) {
// fill top row
for (int i = colStart; i <= colEnd; i++) {
matrix[rowStart][i] = num++;
}
rowStart++;
// fill right column
for (int i = rowStart; i <= rowEnd; i++) {
matrix[i][colEnd] = num++;
}
colEnd--;
// fill bottom row
for (int i = colEnd; i >= colStart; i--) {
matrix[rowEnd][i] = num++;
}
rowEnd--;
// fill left column
for (int i = rowEnd; i >= rowStart; i--) {
matrix[i][colStart] = num++;
}
colStart++;
}
// print matrix
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}
}
```
该方法使用一个二维数组来存储螺旋矩阵。算法首先设置四个指针,分别指向第一行、最后一列、最后一行和第一列。然后,算法按照从左到右、从上到下、从右到左、从下到上的顺序填充矩阵。当所有数字都被填充时,算法打印矩阵。
阅读全文