gpt4 book ai didi

ruby - 树中最深的路

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:48 24 4
gpt4 key购买 nike

我有一个包含 n 元素的树,这些元素存储类似 |id|parent_id| 的内容。我需要找到这棵树的最大深度。我需要在 Ruby 中执行此操作,但伪代码也可以帮助我。

最佳答案

假设 {id, parent_id} 对在字典/ map 中,您可以使用 memoization 找到最大深度技术:

主要功能(伪代码):

Map tree; // <<=== This is your tree; id is the key; parent_id is the value
Map depth; // This map is used for memoization
int max = -1;
foreach pair in tree
max = Max(memoized_depth(id, tree, depth), max)

递归深度函数:

int memoized_depth(id, tree, depth)
if (depth.containsKey(id)) return depth[id];
if (!tree.contains(id)) return 0; // no parent means it's a root
int res = memoized_depth(tree[id] // parent, tree, depth) + 1;
depth[id] = res;
return res;

关于ruby - 树中最深的路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9945428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com