编辑(简化)
我很肯定,我错过了正确的术语“谷歌”这个问题,请给我指出,如果它已经被问过: 我有一个树结构,假设如下
(0)->(0,0:7)
(0,1:9)
(1)->(1,0:6)
(1,1:2)
(1,2:1)
为了简单起见,让我们将其转换为一个平面结构
l1, l2, v1
0, 0, 7
0, 1, 9
1, 0, 6
1, 1, 2
1, 2, 1
现在让我们在这个树上设置一个阈值3
。这意味着我们要保留高于阈值的节点,并合并分支中低于阈值的所有节点。你知道吗
因此,我们最终得到的结果是,最后两行(因为它们低于临界值)最终得到一张票据,作为两行的总和“产生”:
l1, l2, v1
0, 0, 7
0, 1, 9
1, 0, 6
1, (1,2), 3
最好是用python解决方案。显然,我很乐意处理一些边缘条件。请注意,在现实中,我可以结束与树是6深。你知道吗
所以我最终还是按照我之前暗示过的笨拙的方式做了。 我首先在节点定义中添加了一些标志(
dodelete=False
和visited=False
)。你知道吗并将
add_node
方法更新为其中
self.children
是节点列表然后是两种方法
以及
一个有点复杂的方法,但工作。我创造了一个要点https://gist.github.com/fahaddaniyal/0dc86c80f266fd9f8cdb供任何任性的灵魂尝试检验
相关问题 更多 >
编程相关推荐