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

标签 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

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

有人可以帮助我吗?

最佳答案

向您的类添加一个集合,用于跟踪使用的输入并检查方法内的该集合

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
        }
    }
//...
}

关于java - 检查该方法是否已使用该输入执行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59491951/

相关文章:

javascript - 解释递归如何在算法中工作以确定二叉树的深度?

Python数字组合生成器需要递归

c++ - 奇怪的 MSC 8.0 错误 : "The value of ESP was not properly saved across a function call..."

python - 如何从 ExitStack 中删除上下文管理器

c - 这段代码给出了 head->next = NULL,尽管它不应该

java - java SSLSocketFactory如何在SSL期间从 keystore 选择服务器证书和私钥

java - 如何使用junit测试java中的注释

python-3.x - 将单一递归调用算法转换为分支、多重递归调用算法

java - 在java中使用thymeleaf html模板下载pdf文件时,css样式不可见

java - 安卓 : Modification of my layout in real time