0
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

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

有人能帮我吗?

4

1 回答 1

3

将一个 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
        }
    }
//...
}
于 2019-12-26T18:22:08.520 回答