python中float(“inf“)、float(“-inf“)用法,以及递归函数和DFS中巧妙利用正负无穷大每次返回值

最近在学习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))

'''这样利用正负无穷大,就可以实现每次都返回一个值,并且不影响下次遍历'''

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值