检查该方法是否已使用该输入执行的方法

时间:2019-12-26 18:12:18

标签: 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 executed with that input) {
              howManyVariaties++;
       int catalanNumber = 0;
       for (int i= 0; i < n; i++) {
           catalanNumber += catalan(i) * catalan( n- 1 -i);
       return catalanNumber

总而言之,我只想检查最大堆栈深度是多少。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

将Set添加到您的类中,以跟踪使用了什么输入并检查方法中的set

public class CatalanNumbers {

    private int howManyVariaties;
    private int catalanNumber;
    private int catalanNumber;
    private Set<Integer> alreadyHandled = new HashSet<>();

    public int catalan(int a) {
        if (alreadyHandled.add(a)) {                  
            //rest of code
        }
    }
//...
}