java某个起点出发的最长路径_递归。在给定起点和最大距离的情况下,找到所有最长路径...

给定一个起点a和一个最大距离D,从a开始的长度大于或等于D的最长路径是什么?这段代码有什么问题?在def find_paths(graph, start, path, allpaths, dmax):

if dmax == 0:

allpaths.append([start])

else:

path.append(start)

for edge in graph[start]:

d = graph[start][edge]

if dmax - d >= 0:

find_paths(graph, edge, path, allpaths, dmax - d)

else:

allpaths.append(path)

return allpaths

graph = {

1: {2: 33, 3: 15},

2: {1: 33, 4: 57, 5: 7},

3: {1: 15},

4: {2: 57},

5: {1: 89, 2: 7},

}

print find_paths(graph, 1, [], [], 50)

这样可以得到:

^{pr2}$

find_paths(graph, 1, [], [], 50)的输出应该是(1,3)和(1,2,5)。也就是说,第一条路径通过顶点1和3,第二条路径通过1、2和5。在

谢谢。在

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值