关于dfs中有返回值和无返回值两种写法的问题

匿名 (未验证) 提交于 2019-12-02 23:47:01

我之前写dfs,都是使用一个全局变量,然后在递归边界去修改这个全局变量,这很好理解。但是有返回值的dfs怎么写呢?
这个问题我一直没有去解决,而是一直用的全局变量的方法,而其实有返回值的写法也很简单。
比如下面的代码。
s表示起点,e表示终点,我们每次只能前进一格或者两格,求我们到达终点有多少种方法。有返回值的也很简单,存储好不同分支的结果,相加直接返回即可。这里还是要记住递归的关键点,边界条件,和只思考本层的递归式。如果再思考下一层如何运行的,很容易被绕进去。

def routenum(s, e):     if s==e:         return 1     elif s>e:         return 0     return routenum(s+1, e)+routenum(s+2,e)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!