如何在递归中传递变量

时间:2015-12-29 18:59:00

标签: algorithm recursion

我想做递归dfs之类的东西,而我的main函数只获取一个参数 - 我需要达到的状态。我的帮助函数可以获取任何参数集。我需要的是达到最终状态并记住我的动作。所以我想我可以递归地调用函数并减少状态(用我需要达到的长度表示),但是如何保存到达那里的方式?我想使用一个字符串,但我无法通过它...

代码的想法是当我能够以1或2步进行时达到一定的长度

伪代码:

helper(path, step_length, length_to_go):
    if(step_length == length)
        return path.concat(step_length);
    Main(length_to_go - step_length);

Main(length):
    string path = "";
    int step1 = 1, step2 = 2;
    helper(path, step1, length);
    helper(path, step2, length);

问题在于对main的调用,路径字符串不会继续,不会吗?

1 个答案:

答案 0 :(得分:3)

main方法可以创建一个空集合并将其传递给helper。

帮助程序中的每个调用都可以使用其步骤更新集合。

您不必向Main添加参数,但必须向Helper添加一个参数。