题目:Word Break 将给定的字符串按照给定的单词表拆分开,判断是否能在给定的单词表中拆分该字符串 单词表中单词不重复,但是可以在字符串中重复出现。 思路: 暴力搜索,只要遍历单词表每次找到与字符串的当前位置往后的n(单词表中当前遍历到的单词长度)的字符重合则表示可以拆分。 这种方法,时间复杂 ...
分类:
其他好文 时间:
2017-04-18 22:12:05
阅读次数:
206
/* 从13个书中挑选5个值,他们的组合可能是 什么, 如下代码 dfs深度遍历, 和全排列是一种方法,但是思路不同 */ public class Main { static int count = 0; static int a[] = new int[6]; public static voi ...
分类:
编程语言 时间:
2017-03-26 18:11:58
阅读次数:
185
递归算法就是方法自身直接或者间接地调用到了自身,它是一种写起来很简单,但理解起来不那么简单的算法。 一个功能在被重复地调用,并且运算的结果和上一次的调用有关, 这种时候,可以使用递归。 * 注意: * 1.递归一定要明确递归结束的条件,否则会栈溢出 * 2.注意解决问题的递归次数,如果次数过多,也会 ...
分类:
其他好文 时间:
2017-03-23 20:56:09
阅读次数:
238
一、深度遍历和广度遍历原理及实现 1、深度优先 英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。对于上面的例子来说深度优先遍历的结果就是:A,B,D,E,I,C,F,G,H.(假设先走子节点的的左侧)。 深 ...
分类:
编程语言 时间:
2017-02-15 11:54:54
阅读次数:
190
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,深度遍历有前序、中序以及后序三种遍历方法,广度遍历即我们平常所说的层次遍历。因为树的定...
分类:
其他好文 时间:
2017-01-31 10:41:03
阅读次数:
347
在竞赛中如果系统栈很小的话,过深的递归会让栈溢出,这个时候我们就要自己手写栈,将递归转化成手工栈。 方法其实也很简单。 基本思路上,我们就是用栈不断的pop,push。但是何时push,何时pop呢? 在《算法导论》上对深度优先遍历树的讲解中,在深度遍历中,会对每个节点进行染色,白色为没有被访问过; ...
分类:
其他好文 时间:
2016-10-25 13:43:32
阅读次数:
164
二叉树的创建代码==>C++ 创建和遍历二叉树 深度优先遍历:是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 广度优先遍历:是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。 ...
分类:
编程语言 时间:
2016-09-17 01:51:57
阅读次数:
280
本盘文章是参考其他人的博客写的,只为自己记忆,参考者勿喷。 深度遍历:非递归,使用List保存已经访问过的节点 广度遍历:递归方式,List保存已经访问过的节点,使用Queue队列 具体图如下所示: 结果如下: 广度遍历:1 2 3 4 5 6 7 8 9 深度遍历:1 2 5 9 6 3 7 8 ...
分类:
其他好文 时间:
2016-09-06 15:26:07
阅读次数:
218
概述 图的遍历是指从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的遍历操作和树的遍历操作功能相似。图的遍历是图的一种基本操作,图的其它算法如求解图的连通性问题,拓扑排序,求关键路径等都是建立在遍历算法的基础之上。 由于图结构本身的复杂性,所以图的遍历操作也较复杂,主要表现在以下四个方 ...
分类:
其他好文 时间:
2016-08-28 22:34:28
阅读次数:
330
//题目:一个字符串数组例如 abcd dcsg gec就输出true否则输出false; 这个问题就转化成一个图中是否存在欧拉通路问题。这里主要考虑的情况就是存在环的情况,所以当存在环的时候用深度遍历,只要看从一个点能不能经过所有点即可,选择dfs的起点的话分两种情况,如果有度为1的点就选择其中度 ...
分类:
其他好文 时间:
2016-08-22 17:58:06
阅读次数:
206