我想做递归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的调用,路径字符串不会继续,不会吗?
答案 0 :(得分:3)
main方法可以创建一个空集合并将其传递给helper。
帮助程序中的每个调用都可以使用其步骤更新集合。
您不必向Main添加参数,但必须向Helper添加一个参数。