算法基础复习
Hazelyu27
这个作者很懒,什么都没留下…
展开
-
BFS题型总结
1. 走迷宫:给01矩阵,求从左上角走到右下角至少要多少步。“至少”:最短路问题,用BFS每次遍历一个层,当走到的时候输出就行。这里需要设置st数组来标志每个位子是否被走过?不需要,用一个dist数组来保存走的每一层就行啦。注意:这一段不能直接令dist[x][y] = min(dist[x][y], dist[t.first][t.second]+1), 否则会陷入死循环,只有更新后的点才能加入队列。 if(dist[x][y] > dist[t.first.原创 2021-09-05 15:33:24 · 202 阅读 · 0 评论 -
DFS题目总结(基础题)
1. DFS输出1-n的全排列(acwing 842)思路:输出排列方法,用DFS递归每一个搜索过程,用st记录每个数字有没有被访问。注意1.path不能用vector表示dfs函数中,参数x表示选中的第几个数,不用return来回溯,如果用return回溯,就相当于图的遍历。如果选中大于n个数,函数会直接结束。还要用一个path数组,记录路径。这里路径是选中的数,必须选到结尾后再一起输出。# include<bits/stdc++.h>using namespac.原创 2021-09-05 11:03:01 · 295 阅读 · 0 评论