在Java中实现螺旋数组可以通过以下步骤进行:
2. 使用嵌套的循环结构,按照螺旋顺序填充数组。
3. 打印出填充好的数组。
public class SpiralArray {
public static int[][] generateSpiralArray(int m, int n) {
int[][] array = new int[m][n];
int total = m * n;
int layer = Math.min(m, n);
int count = 1;
int rowStart = 0, rowEnd = m - 1, colStart = 0, colEnd = n - 1;
while (count <= total) {
// 从左到右
for (int i = colStart; i <= colEnd && count <= total; i++) {
array[rowStart][i] = count++;
}
rowStart++;
// 从上到下
for (int i = rowStart; i <= rowEnd && count <= total; i++) {
array[i][colEnd] = count++;
}
colEnd--;
// 从右到左
for (int i = colEnd; i >= colStart && count <= total; i--) {
array[rowEnd][i] = count++;
}
rowEnd--;
// 从下到上
for (int i = rowEnd; i >= rowStart && count <= total; i--) {
array[i][colStart] = count++;
}
colStart++;
}
return array;
}
public static void printArray(int[][] array) {
for (int[] row : array) {
for (int num : row) {
System.out.print(num + " ");
}
System.out.println();
}
}
public static void main(String[] args) {
int m = 5, n = 5;
int[][] spiralArray = generateSpiralArray(m, n);
printArray(spiralArray);
}
}
这个代码定义了一个`SpiralArray`类,其中包含一个静态方法`generateSpiralArray`,用于生成一个给定大小的螺旋数组。`printArray`方法用于打印二维数组。在`main`方法中,我们生成了一个5x5的螺旋数组并打印出来。