Java 方法,该方法检查是否已使用该输入执行该方法 公共类加泰罗尼亚成员{ 私有内部变量; 加泰罗尼亚努贝尔私人酒店; 加泰罗尼亚努贝尔私人酒店; 加泰罗尼亚国际公共酒店(INTA){ if(方法从未使用该输入执行){ 多少变量++; int catalanNumber=0; 对于(int i=0;i

Java 方法,该方法检查是否已使用该输入执行该方法 公共类加泰罗尼亚成员{ 私有内部变量; 加泰罗尼亚努贝尔私人酒店; 加泰罗尼亚努贝尔私人酒店; 加泰罗尼亚国际公共酒店(INTA){ if(方法从未使用该输入执行){ 多少变量++; int catalanNumber=0; 对于(int i=0;i,java,recursion,stack,catalan,Java,Recursion,Stack,Catalan,总之,我只想检查一下最大堆栈深度是多少 有人能帮我吗?在类中添加一个集合,用于跟踪所使用的输入,并在方法中检查该集合 public class CatalanNumbers { private int howManyVariaties; private int catalanNumber; private int catalanNumber; public int catalan(int a) { if (Method was never exe

总之,我只想检查一下最大堆栈深度是多少


有人能帮我吗?

在类中添加一个集合,用于跟踪所使用的输入,并在方法中检查该集合

public class CatalanNumbers {

    private int howManyVariaties;
    private int catalanNumber;
    private int catalanNumber;

    public int catalan(int a) {
       if (Method was never executed with that input) {
              howManyVariaties++;
       int catalanNumber = 0;
       for (int i= 0; i < n; i++) {
           catalanNumber += catalan(i) * catalan( n- 1 -i);
       return catalanNumber
公共类加泰罗尼亚成员{
私有内部变量;
加泰罗尼亚努贝尔私人酒店;
加泰罗尼亚努贝尔私人酒店;
私有集alreadyHandled=new HashSet();
加泰罗尼亚国际公共酒店(INTA){
如果(alreadyHandled.add(a)){
//代码的其余部分
}
}
//...
}

在类中添加一个集合,用于跟踪所使用的输入,并在方法中检查该集合

public class CatalanNumbers {

    private int howManyVariaties;
    private int catalanNumber;
    private int catalanNumber;

    public int catalan(int a) {
       if (Method was never executed with that input) {
              howManyVariaties++;
       int catalanNumber = 0;
       for (int i= 0; i < n; i++) {
           catalanNumber += catalan(i) * catalan( n- 1 -i);
       return catalanNumber
公共类加泰罗尼亚成员{
私有内部变量;
加泰罗尼亚努贝尔私人酒店;
加泰罗尼亚努贝尔私人酒店;
私有集alreadyHandled=new HashSet();
加泰罗尼亚国际公共酒店(INTA){
如果(alreadyHandled.add(a)){
//代码的其余部分
}
}
//...
}

为什么要增加线性复杂度?在给定的解决方案中更喜欢“HashSet”。我建议使用Set而不是List。这样可以避免重复元素。问题在于contains()采用O(n)而不是O(1),但无论如何,集合是这里更重要的选择:)@YuriiJ你是对的,我会更新我的答案。谢谢。很抱歉,我没有正确地表达它。@YuriiJ说得很好。为什么要添加线性复杂性?在给定的解决方案中更喜欢“HashSet”?我建议使用集合而不是列表。它将避免重复元素。问题在于包含()这需要O(n)而不是O(1),但无论如何,在这里设置是更重要的选择:)@YuriiJ你是对的,我会更新我的答案。谢谢。对不起,我没有正确地表达出来。@YuriiJ说得很好。