(一)BF算法了解 (二)算法模拟 开始匹配: (三)代码实现:前面我们实现顺序存储串的时候使用的就是BF算法 (四)性能分析 ...
分类:
编程语言 时间:
2018-08-09 21:14:40
阅读次数:
171
贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。例如平时购物找钱时,为使找回的零钱的硬币数最少,不考虑找零钱的所有各种发表方案,而是从最大面值的币种开始,按递减的顺序考虑各币种,先尽量用大面值的币种,当不足大面值币种的金
分类:
编程语言 时间:
2018-08-09 15:46:41
阅读次数:
225
Java采用面向对象的方式处理异常: 1.抛出异常: 在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE; 2.捕获异常: JRE得到异常后,寻找相应的代码来处理异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常 ...
分类:
其他好文 时间:
2018-08-08 18:55:51
阅读次数:
120
这道单词拼写真的是很好的搜索题目还是用DFS进行搜索,用vis[i]表示是否用过,然后进行查找首先从给定的头开始进行dfs然后进行遍历每个单词1看这个单词是否用过2看这个单词是否可以连接上然后需要暴力一遍长度判断是否可以连接可以的话就进行连接,然后继续深搜下去否则话就回溯回来这里用string类进行 ...
分类:
其他好文 时间:
2018-08-07 23:50:19
阅读次数:
161
一、二分查找 二、思考与问题: 1.自己在上面二分查找代码的基础上又优化了一下,想要在查找成功的时候,接收到一个返回值,比如接收的返回值内容为True 2.自己调试了一会发现,二分查找用到了函数的递归,先一层一层递推,再一层一层回溯回来;那么最后函数接收到的返回值实际上是以最后回溯给函数的返回值为准 ...
分类:
编程语言 时间:
2018-08-07 20:26:06
阅读次数:
161
题目大意:给出一个N*M的迷宫,迷宫中有一扇门D,只有在T时刻会打开,现在你0时刻位于S,你需要在正好在T时刻到达D,你只能上下左右移动,每次移动耗费1时刻,且同一个位置不能进入两次,问是否能在T时刻刚好到达D处。 范围 1 < N,M < 7, 1 < T < 50,这个范围有点大,直接DFS回溯 ...
分类:
其他好文 时间:
2018-08-07 13:57:25
阅读次数:
159
一、函数递归 定义:函数的递归调用是函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或是间接地调用该函数本身,称之为函数的递归调用 递归调用的两个阶段:1.回溯:一次次递归下去,需要注意每一次重复问题的规模都应该有所减少,直到逼近一个最终的结果,即需要一个结束的条件 2.递推:往回一层一层推 ...
分类:
编程语言 时间:
2018-08-06 21:00:36
阅读次数:
144
考察回溯法的题目。 难点在于如何枚举天平结构的各种情况。 思路1:自底向上,用类似二叉树的结构储存(类似霍夫曼树,挂坠全部在叶节点),每次选择两个节点组成一个子树同时算出子树的左右臂长度,递归建树。但是这样会有较多重复的情况。 思路2:自顶向下,把集合分为左右子集(分别为左右子树所含的挂坠集合),在 ...
分类:
其他好文 时间:
2018-08-04 21:43:04
阅读次数:
160
题意:一个集合(矩阵) m[i][j]=m[j][i]权值,分成两个集合,使其权值最大。注:在同一个集合中权值只能算一个。 思路:dfs 代码上需要注意的问题: 这里有个回溯的操作,如果不执行dfs的话,就说明i放到集合1并不合适,所以放到集合0 解决问题的代码: ...
分类:
编程语言 时间:
2018-08-02 11:26:58
阅读次数:
145
题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 解题思路 回溯法,从 ...
分类:
其他好文 时间:
2018-07-31 17:10:13
阅读次数:
157