最近在学习python利用递归函数实现算法和深度搜素(DFS),我发现很多时候需要使用这个玩意去进行一下利用。
例如:在递归函数中,每次都需要返回值,这时候就派上用场了
首先说明:float(“inf“)、float(“-inf“) 相当于是正负无穷大
下面请看DFS利用的实例:
def DFS(seed):
if seed in have_cnt: #判断已经拥有的作物中是否有该作物
return 0
min_time = float("inf") #设置一个变量最大值,用于后面返回
for p1,p2 in rule[seed]: #将可以杂交成这个作物的作物迭代
tmp = max(cnt[p1],cnt[p2]) #看这两个作物哪一个时间最长
min_t = max(DFS(p1),DFS(p2)) +tmp #将这个时间加进去,并且递归这两个作物
if min_t < min_time: #将时间和无穷大进行比较,得出较小的,赋值
min_time = min_t
return min_time #迭代结束就结束这个函数,并且返回最小时间
print(DFS(T))
'''这样利用正负无穷大,就可以实现每次都返回一个值,并且不影响下次遍历'''