摘要: BFS框架: // 计算从起点 start 到终点 target 的最近距离 int BFS(Node start, Node target) { Queue<Node> q; // 核心数据结构 Set<Node> visited; // 避免走回头路 q.offer(start); // 将起点 阅读全文
posted @ 2021-03-26 21:19 RealGang 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 动态规划 重叠子问题、最优子结构、状态转移方程就是动态规划三要素 思考状态转移方程: 明确 base case → 明确「状态」-> 明确「选择」 → 定义 dp 数组/函数的含义。 # 初始化 base case dp[0][0][...] = base # 进行状态转移 for 状态1 in 状 阅读全文
posted @ 2021-03-26 21:18 RealGang 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 思路: 解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题: 1、路径:也就是已经做出的选择。 2、选择列表:也就是你当前可以做的选择。 3、结束条件:也就是到达决策树底层,无法再做选择的条件。 回溯算法的框架: result = [] def backtrack(路径, 选 阅读全文
posted @ 2021-03-26 20:37 RealGang 阅读(85) 评论(0) 推荐(0) 编辑