用DFS的场景: 找出所有方案:DFS找出所有方案总数 可能是动态规划 DFS时间复杂度:答案个数*构造每个答案的时间 动态规划时间复杂度:状态个数*计算每个状态时间 二叉树时间复杂度:节点数*处理每个节点时间 135. Combination Sum 1 public class Solution ...
分类:
其他好文 时间:
2018-09-27 18:06:56
阅读次数:
153
今天复习了图的知识,稍作回顾整理。 描述一个图,无非一个点集V,一个边集E. 图的存储有邻接矩阵(适用于稠密图),邻接表(适用于稀疏图),十字链表(有向图),多重邻接表(无向图)。当我们说边<A,B>时,A是弧尾,B是弧头。 图的遍历可以用DFS{深度优先搜索}或者BFS{广度优先搜索}实现。这个时 ...
分类:
其他好文 时间:
2018-09-19 01:19:14
阅读次数:
160
广度优先搜索 1、把根节点入队列; 2、如果队列非空,出队,再依次将左子树入队、右子树入队; 3、重复步骤2,直到队列为空。 深度优先搜索 1、把根节点入栈; 2、如果栈非空,则出栈,再依次将右子树入栈、左子树入栈; 3、重复步骤2,直到栈为空。 二叉树镜像 方法1:递归实现,先把根节点的左右子树交 ...
分类:
其他好文 时间:
2018-09-15 00:39:27
阅读次数:
173
T1:棋盘问题 POJ1321 http://poj.org/problem?id=1321 分析:本题给出棋盘分布以及落子数目,让我们求出在棋子不同行不同列摆放的情况下,有几种落子方式。 本题我们利用DFS算法,编写一个递归函数。从第一行第一列的位置开始在列内扫描,如果找到合适位置就落子,然后把这 ...
分类:
其他好文 时间:
2018-09-12 21:09:04
阅读次数:
187
“KKT数据结构805最大黑区域271同254” “KKT基本算法903最大黑区域437同454” “KKT基本算法1003最大黑区域454同437和271” 本题在OJ上有三个,因为是搜索的经典题。所以我也就不厌其烦的刷题了 “搜索”默认指“深度优先搜索”(DFS),不解释: ...
分类:
其他好文 时间:
2018-09-06 19:59:39
阅读次数:
183
题意:给出一个正整数N,以及k,p,要求把N分解成k个因式,即N=n1^p + n2^p + ... + nk^p。要求n1,n2,...按降序排列,若有多个解,则选择n1+n2+...+nk最大的,若还有多个解,则选择数字序列较大的。若不存在解,则输出Impossible。 思路:【这是道好题!】 ...
分类:
其他好文 时间:
2018-09-05 21:42:49
阅读次数:
190
对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。以上面二叉树为例,深度优先搜索的顺序为:ABDECFG。怎么实现这个顺序呢 ?深度优先搜索二叉树是先访问根结点,然后遍历左子树接着是遍历右子树,因此我们可以利用堆栈的先进后出的特点 ...
分类:
其他好文 时间:
2018-08-30 12:26:05
阅读次数:
188
一、概念及分类 二、图的存储结构 1、邻接矩阵 顶点: 弧: 边: 表达式语句: 2、邻接表 逆邻接表: 3、十字链表 4、邻接多重表 三、图的权值概念及遍历 权值: 图的遍历: 1.深度优先搜索 2.广度优先搜索 3.图的最小生成树 1)普利姆算法 2)克鲁斯卡尔算法: 四、补充知识点 1、课程下 ...
分类:
编程语言 时间:
2018-08-30 01:57:09
阅读次数:
291
1、深度优先的查询 图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点A出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和a有路径相通的顶点都被访问到。 若此时尚 ...
分类:
其他好文 时间:
2018-08-28 22:00:09
阅读次数:
130
图(graph):表示“多对多”的关系六度空间理论(Six Degrees Separation)包含:1.一组顶点:通常用V(Vertex)表示顶点集合2.一组边:通常用E(edge)表示边的集合 边是顶点对:(v, w) 属于E, v , w 属于V 有向边<v, w>表示v 指向w的边(单行线 ...
分类:
其他好文 时间:
2018-08-25 21:22:00
阅读次数:
240