java递归实现螺旋矩阵
时间: 2024-09-26 14:19:00 浏览: 44
java源码:递归遍历矩阵.zip
在Java中,递归可以用来生成螺旋矩阵,也称为"Zigzag"矩阵或者"蛇形矩阵"。递归的方式通常是通过一个函数不断调用自身,改变当前的位置和旋转方向来实现。下面是一个简单的递归示例,用于创建一个3x3的螺旋矩阵:
```java
public static int[][] spiral(int n) {
int[][] matrix = new int[n][n];
int startRow = 0, endRow = n - 1;
int startCol = 0, endCol = n - 1;
int direction = 0; // 0表示向右,1向下,2向左,3向上
// 递归函数,处理当前矩形区域
public void fill(int row, int col) {
if (row < startRow || row > endRow || col < startCol || col > endCol)
return;
matrix[row][col] = ++count; // 增加计数并填入矩阵
switch (direction) {
case 0: // 向右
fill(row + 1, col);
break;
case 1: // 向下
fill(row, col + 1);
break;
case 2: // 向左
fill(row - 1, col);
break;
case 3: // 向上
fill(row, col - 1);
break;
}
}
int count = 1; // 初始化计数
fill(startRow, startCol);
return matrix;
}
// 示例
int[][] spiralMatrix = spiral(3);
```
阅读全文