我可以在 java 中对这个帕斯卡三角形进行更快的递归吗?
Can I do a quicker recursion for this pascal triangle in java?
public static int[] computePT(int k) {
int[] arr = new int[k];
if(k==1){
arr[0] = 1;
return arr;
}else{
for (int i=(k+1)/2 -1 ; i >= 0; i--){
if(i==0){
arr[0] = 1;
arr[k-1] = 1;
}else {
int[] yell = computePT(k-1);
arr[i] = yell[i-1] + yell[i];
arr[k-i-1] = arr[i];
}
}
return arr;
}
}
此函数将 return 帕斯卡三角形中第 k 行的元素,但我想在较短的运行时内执行此操作。好像递归不够快...
你计算
int[] yell = computePT(k-1);
进入循环。在循环之前移动它应该会有更好的性能
public static int[] computePT(int k) {
int[] arr = new int[k];
if(k==1){
arr[0] = 1;
return arr;
}else{
for (int i=(k+1)/2 -1 ; i >= 0; i--){
if(i==0){
arr[0] = 1;
arr[k-1] = 1;
}else {
int[] yell = computePT(k-1);
arr[i] = yell[i-1] + yell[i];
arr[k-i-1] = arr[i];
}
}
return arr;
}
}
此函数将 return 帕斯卡三角形中第 k 行的元素,但我想在较短的运行时内执行此操作。好像递归不够快...
你计算
int[] yell = computePT(k-1);
进入循环。在循环之前移动它应该会有更好的性能