数据结构-递归(三)
数据结构-递归(三)
多路递归
汉诺塔:
1 |
|
杨辉三角:
1 |
|
如此调用过于繁琐,因此我们可以舍弃递归(?),使用数组单独记忆上一排的数据从而计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17private static void create(int n) {
//创建记忆数组
int[] triangle = new int[n];
for (int i = 0; i < n; i++) {
//创建临时数组
int[] temp = new int[n];
printSpace(n, i);
for (int j = 0; j <= i; j++) {
//使用记忆数组进行计算
temp[j] = (j == 0 || i == j) ? 1 : triangle[j - 1] + triangle[j];
System.out.printf("%-4d", temp[j]);
}
//计算完成后将当前行进行记忆,用于下一次计算
triangle = temp;
System.out.println();
}
}当前,杨辉三角是可以通过每行前一项计算出下一项的,暂不展开
数据结构-递归(三)
https://www.zheep.top/2024/12/01/数据结构-递归(三)/