auto commit

This commit is contained in:
CyC2018
2019-11-02 12:07:41 +08:00
parent 182e1440a4
commit bb6e0df82d
784 changed files with 7545 additions and 2827 deletions

View File

@ -52,7 +52,7 @@
- 4 -> {}
- 3 -> {}
每一层遍历的节点都与根节点距离相同 d<sub>i</sub> 表示第 i 个节点与根节点的距离推导出一个结论对于先遍历的节点 i 与后遍历的节点 j d<sub>i</sub> <= d<sub>j</sub>利用这个结论可以求解最短路径等 **最优解** 问题第一次遍历到目的节点其所经过的路径为最短路径应该注意的是使用 BFS 只能求解无权图的最短路径无权图是指从一个节点到另一个节点的代价都记为 1
每一层遍历的节点都与根节点距离相同 d<sub>i</sub> 表示第 i 个节点与根节点的距离推导出一个结论对于先遍历的节点 i 与后遍历的节点 j d<sub>i</sub> <= d<sub>j</sub>利用这个结论可以求解最短路径等 **最优解** 问题第一次遍历到目的节点其所经过的路径为最短路径应该注意的是使用 BFS 只能求解无权图的最短路径无权图是指从一个节点到另一个节点的代价都记为 1
在程序实现 BFS 时需要考虑以下问题
@ -275,7 +275,7 @@ private int getShortestPath(List<Integer>[] graphic, int start, int end) {
而深度优先搜索在得到一个新节点时立即对新节点进行遍历从节点 0 出发开始遍历得到到新节点 6 立马对新节点 6 进行遍历得到新节点 4如此反复以这种方式遍历新节点直到没有新节点了此时返回返回到根节点 0 的情况是继续对根节点 0 进行遍历得到新节点 2然后继续以上步骤
从一个节点出发使用 DFS 对一个图进行遍历时能够遍历到的节点都是从初始节点可达的DFS 常用来求解这种 **可达性** 问题
从一个节点出发使用 DFS 对一个图进行遍历时能够遍历到的节点都是从初始节点可达的DFS 常用来求解这种 **可达性** 问题
在程序实现 DFS 时需要考虑以下问题
@ -577,8 +577,8 @@ private void dfs(int r, int c, boolean[][] canReach) {
Backtracking回溯属于 DFS
- 普通 DFS 主要用在 **可达性问题** 这种问题只需要执行到特点的位置然后返回即可
- Backtracking 主要用于求解 **排列组合** 问题例如有 { 'a','b','c' } 三个字符求解所有由这三个字符排列得到的字符串这种问题在执行到特定的位置返回之后还会继续执行求解过程
- 普通 DFS 主要用在 **可达性问题** 这种问题只需要执行到特点的位置然后返回即可
- Backtracking 主要用于求解 **排列组合** 问题例如有 { 'a','b','c' } 三个字符求解所有由这三个字符排列得到的字符串这种问题在执行到特定的位置返回之后还会继续执行求解过程
因为 Backtracking 不是立即返回而要继续求解因此在程序实现时需要注意对元素的标记问题