递归、图遍历与回溯
数据结构与算法基础#Python全栈#第五阶段#数据结构与算法基础#递归、图遍历与回溯约 487 字 · 1 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
递归解法通常需要说明哪些条件?
追问 终止条件、规模缩小和返回值如何验证?为什么应避免只会写递归而不能解释执行过程?
深度优先与广度优先有什么区别?
追问 调用栈、显式栈与队列分别怎样管理待处理节点?
邻接表与邻接矩阵怎样表示图?
追问 稀疏与稠密图在内存、邻居枚举和边判断方面有什么不同?
在有环图上遍历,为什么需要 visited?
追问 入队时标记与出队后标记如何影响重复入队和总工作量?
如何在无权图上求两个节点之间的最短路径?
追问 BFS 为什么适合?前驱记录如何帮助还原路径,不可达时返回什么?
如何统计网格中连通区域的数量?
追问 规定仅上下左右相邻;边界、访问标记与是否修改原网格如何说明?
拓扑排序适合解决什么问题?
追问 任务依赖中的入度、可执行队列和有环失败如何表达?拓扑序是否一定唯一?
回溯与普通遍历有什么区别?
追问 选择、递归、撤销选择和剪枝分别负责什么?
如何生成不含重复元素列表的所有排列?
追问 路径、已使用位置与结果拷贝如何管理?为什么输出本身可能具有很高成本?
如何生成从 n 个不同元素中选择 k 个的组合?
追问 如何避免顺序不同但成员相同的重复结果?k 为零或超出范围如何处理?