java - 到达二进制图中根节点的方法数量?

标签 java algorithm graph dynamic-programming graph-algorithm

在下面的图结构中,我们有多少种方式可以从底层到达顶层?他们对这个问题有任何递归定义吗?假设一步之后我们不能在同一层,我们总是朝着根节点或峰移动。

  O
 O O
O O O

这里 n=3(#nodes in bottom layer = graph height + 1)。对于此图,我们有 4 种方法从底层移动到峰值。我们如何将其推广到任何“n”?另外,我们如何使用动态规划来做到这一点?

最佳答案

假设从给定的节点只能向左上或向右爬,那么结果似乎是 2^N,其中 N 是树的高度。

解释:从节点(i,j)出发的路径数为c(i,j)=c(i-1,j-1)+c(i-1,j)。这会产生 pascal triangle ,其中每个级别 N 的总和为 2^N。

关于java - 到达二进制图中根节点的方法数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22081336/

相关文章:

java - 不使用 goto 命令跳转到先前的代码

java - Android 中的 ArrayList 返回不需要的结果

algorithm - 计算老虎机支出

python - Anaconda 中的线图

java - Gremlin 控制台无法初始化 neo4j2 嵌入式数据库

java - 防止并发插入中的句点交叉

java - 使 Guava CacheLoader 中的刷新条目无效

c++ - 计算给定数组的子序列数,使得它们的总和小于或等于给定数?

algorithm - 面试时的动态规划算法

graph - 在 Neo4J 中为大图生成边的智能方法