gpt4 book ai didi

java - 具有适当终止条件的 java.lang.StackOverflowError 的原因是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:36:40 25 4
gpt4 key购买 nike

<分区>

hacker earth 上有一个类似的编码问题。挑战现在结束。我现在没有那个问题,但我的代码看起来像这样。我通过了测试用例,但由于大量输入导致此错误,我的代码未被接受。我写了下面的代码。

import java.util.*;
class TripleStep{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n=10000;
long[] memo=new long[n+1];
Arrays.fill(memo,-1);
long ans=StairOpr(n,memo);
Arrays.fill(memo,-1);
System.out.println(ans);
}
public static long StairOpr(int n,long[] memo){
if(n<0){
return 0;
}
else if(n==0){
return 1;
}
else if(n==1){
return 2;
}

else if(n==2){
return 3;
}
else if(memo[n]>-1){
return memo[n];
}
else
memo[n]= (StairOpr(n-1,memo)%1000000007+StairOpr(n-2,memo)%1000000007+StairOpr(n-3,memo)%1000000007+n*n*(n+1)%1000000007)%1000000007;
return memo[n];
}
}

对于输入值 10000,代码给出了以下错误。

Exception in thread "main" java.lang.StackOverflowError
at TripleStep.StairOpr(TripleStep.java:31)
at TripleStep.StairOpr(TripleStep.java:31)

是什么原因,有什么解决办法?因为我写的是动态编程代码,但由于错误答案没有提交,我面临拒绝。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com