
搜索和图论
文章平均质量分 82
yihgyi
这个作者很懒,什么都没留下…
展开
-
DFS深度优先搜索
还有就是u+1等于3 u==n的时候 输出一次结果 然后再返回的第三位 然后解除3位占用的那个数。他就是一路走到头 递进到n==0 走到了头 没得走了然后返回上一层 然后执行完再返回上一层…就降成3x2的阶乘->3x2x1的阶乘->3x2x1->0的阶乘 然后0阶乘是1 返回。因为是不同的数排列 所以相同的情况就可以取消了 我们原本是想每一位上从1到n枚举的。1 2 3 到1 2 到 1 3 然后这时候进入第3位for又从1开始!将每个数的状态记录一下 如果被用了 就不能在后面的位填这个数。原创 2023-10-14 16:52:18 · 147 阅读 · 1 评论 -
给出两种遍历结果还原二叉树
然后根据中序遍历的特点和结合中序结果可知,B只有右子树,右子树的根就是C(C在后序中排靠后),然后我们再看中序结果和中序特点易得,D是C的左儿子,E是C的右儿子。然后我们找右子树的根,根据后序结果我们知道F是右子树的根,然后F左边是A 结合中序特点知F只有右子树,然后G是右子树的根,根据中序特点知道H是G的左儿子。然后找子树,我们知道A是根以后,通过中序遍历的结果和中序遍历的特点我们可以看出,排在A左边的BDCE构成了A的左子树,FHG构成了A的右子树。或者②知道中序遍历的结果和后续遍历的结果。原创 2023-10-31 00:25:20 · 99 阅读 · 1 评论 -
BFS宽度优先搜索
和深度优先搜索不同,宽度优先搜索是层层递进,像是地毯式搜索,找到答案就停止(从根开始往下一层一层的搜),这时候选择用队列来维护当前层,如果队列不空说明当前层还没往下搜,讲队头取出,目的是将当前层取出,如果还有下一层就把下一层的节点加入队列以此往复直到找到答案为止。下面是一个使用BFS的经典例子。原创 2023-10-30 00:24:01 · 113 阅读 · 1 评论