怎么算根结点?
可以用二叉树来实现。
二叉树的根结点就是始发站,所以根结点的值为零,始发站算第零站。
根结点下有两个结点,其值分别为1和2,代表从始发站出发有两种可能停靠方案,分别是停在第一站或者第二站。之所以是二叉树,无论停在哪一站,下一站的停靠方案只有这两种可能。
值为1的结点下面也有两个结点,分别是2和3;而值为2的结点下面的两个结点值分别为3和4。
我们的目的,就是把这棵二叉树填满,所谓填满,就是指从这棵二叉树的根结点出发,沿着所有可能路径向下走,最终的那个结点值必然是n。
所以,所有可能路径就是所有方案,而最终结点数就是方案数。
要填满这棵二叉树可以用递归算法实现,当然,如果程序可以并发的话就更快了!所以推荐用Go来做……n太大的话,python可能会慢一点。
PS、如果编程只是为了算路径数,这完全是多此一举,因为这个答案简直不要太容易……只要你在草稿纸上把这棵二叉树画出来,就会发现这棵二叉树很规律,最终结点是斜向上的……路径数可以通过归纳得到,并不需要编程。
真正需要编程得到的,是所有路径,这可以通过对该二叉树进行遍历得到。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有