Tagged

递归

Aug 14, 2022 LeetCode Patterns 13 min read

LeetCode(八)—— 回溯算法

回溯算法是处理"列举所有可能"这一类问题的标准武器:所有排列、所有子集、所有合法棋盘、网格里所有路径。它的本质是带剪枝的暴力搜索——一次走一步,碰到死路立刻退回去,把刚才做的选择"撤回",让下一条分支看到一个干净的状态。整套方法只有三步:

Jul 15, 2022 LeetCode Patterns 12 min read

LeetCode(六)—— 二叉树遍历与构造

二叉树类的题目,本质几乎从来不在"树"上,而在两件事上:你按什么顺序碰节点,以及在决定父节点要做什么之前,你已经从子节点拿到了什么信息。把这两件事想透,前序、中序、后序、层序四种遍历,递归与迭代两种写法,从两种遍历序列还原一棵树,乃至最大深度、验证 BST 这类经典题,都能收敛到同一套配方上。这篇文章就是把这套配方从头讲到尾。