题目大意:给定一个大小为N*M的迷宫。迷宫由通道(.)和墙壁(#)组成,每一步可以向邻接的上下左右四个通道方向移动。求出从起点(S)到终点(G)的最少步数。 思路:从起点开始,定义一个数组d记录可以走的路径…
分类:算法笔记
《算法笔记》——POJ1321-棋盘问题
题目链接:https://vjudge.net/problem/POJ-1321 思路一:首先我们可以明确这是一个深度搜索的题目,与八皇后问题相似。我们建立一个函数DFS用来累计可行的方案数,我们走过一列我…
《算法笔记》——DFS、BFS实现
以下是基于图的链表表示的dfs和bfs的演示: 按照链表表示输入以下数据: 8 0 1 2 8 1 0 3 4 8 2 0 5 6 8 3 1 7 8 4 1 7 8 5 2 7 8 6 2 7 8 7 3…
《算法笔记》——背包问题
背包问题是动态规划算法的一个典型实例,首先介绍动态规划算法: 动态规划: 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中, 可能会有很多可行解。没一个解都对应于一个值,我们希望找到具有最优值的解…
《算法笔记》——归并排序
归并操作: 归并操作,也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法,平均时间复杂度为O(nlogn)。 归…
《算法笔记》——快速排序算法
快速排序的思想: 通过一趟排序将要排序的数据分割成两个独立的部分,以选取的关键字为分界线(关键字一般选取第一个要排序的元素)。其中一部分的所有数据都比另外一部分的所…