这里用到了回溯的方法,回溯其实就是一种深度优先搜索算法,相当于在整个解空间搜索问题的解,类似于穷举法,但是与穷举法的区别在于回溯法用到了剪枝,使得许多不是问题的解提前排出了,减少搜索的次数和时间。class Solution {private: vector> res; vector t...
分类:
其他好文 时间:
2015-05-18 22:22:23
阅读次数:
111
求一个集合的幂集就是求一个集合的所有的子集,方法有穷举法,分治法,回溯等,这里使用回溯法。 回溯法是设计递归过程的一种重要的方法,它的求解过实质上是一个先序遍历一棵“状态树”的过程,只是这棵树不是遍历前预先建立的,而是隐含在遍历过程中的。 幂集中的每个元素是一个集合,它或是空集,或含集合A中一个元素...
分类:
其他好文 时间:
2015-05-14 00:41:43
阅读次数:
582
24点游戏的算法,其中最主要的思想就是穷举法。所谓穷举法就是列出4个数字加减乘除的各种可能性,包括括号的算法。我们可以将表达式分成以下几种:首先我们将4个数设为a,b,c,d,,其中算术符号有+,-,*,/,。其中有效的表达式有a,ab-cd,等等。列出所有有效的表达式。其中我们用枚举类型将符号定义成数字常量,比如用1表示+,2表示-等。如下是我对穷举法的一种编程语言。在编程的头部要对变量做下定义...
分类:
编程语言 时间:
2015-05-13 14:55:46
阅读次数:
167
for穷举法、迭代法穷举法练习: //穷举法: //1、找100以内的与7有关的数 //2、小明单位发了一百元的购物卡,他到超市买洗化用品,一是洗发水(15元),二是香皂(2元),三是牙刷(5元)怎么可以正好把一百元花完。 ...
题目:
能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的数字。
解法一:
穷举法,从数组中任意取出两个数字。计算两者之和是否为给定的数字。其时间复杂度为N(N-1)/2,即O(N2).
解法二:
解法三:
直接对两个数字的和进行一个有序的遍历,从而降低算法的时间复杂度。
首先对数组进行排序,时间...
分类:
其他好文 时间:
2015-04-23 09:44:23
阅读次数:
120
我们知道md5加密是不可逆转的,但是要破解md5的加密也很简单。
网上也有很多在线的破解。既然是不可逆转的,那么网上的那些破解是怎么来的呢?
原因很简单,就是使用穷举法来进行破解。
如:我们计算出键盘上所有字符的组合的md5,将加密前后的字符串分别存入数据库中;
然后拿你的md5加密后的字符串进行查询得出加密前的字符串。这就是在线破解的奥秘。
但是这种破解方法也有局限性。如:我对单一一个...
分类:
其他好文 时间:
2015-04-22 18:24:07
阅读次数:
138
class Program { static void Main(string[] args) { while (true) { int n = 0; ...
1. 穷举法 基本思想:列举问题的所有可能解,并用约束条件逐一进行判定,找出符合约束条件的解。 穷举法的关键在于问题的可能解的列举和可能解的判别。 例如:凑数问题2. 递归技术 定义:直接或间接调用自身的过程 递归三要素: (1)问题形式:返回结果是什么?需要哪些入口参数? (2)递归规...
分类:
编程语言 时间:
2015-04-14 16:34:33
阅读次数:
203
一、项目思路:利用的穷举法,也可以是压榨法,就是把这个矩阵压缩成一个长方形,宽为一,然后在向其他列扩展,之和加起来在比较。此次是团队开发,我负责编辑程序。二、项目代码:#include"iostream.h" using namespace std; static int max;void qion...
分类:
编程语言 时间:
2015-04-09 23:16:22
阅读次数:
167
回文串指给定的字符串,正着读和反着读都是一样的。如ADA,反过来还是ADA即为回文串。最长回文子串指查找一给定字符串中最长的回文串。
通常有以下4种解法。主要考虑的是时间复杂度。
1:穷举法
穷举所有的子串,找出是回文串的子串,统计出最长的一个。
求每一个子串时间复杂度O(N^2),判断子串是不是回文O(N),两者是相乘关系,所以时间复杂度为O(N^3)。
代码如下:
#includ...
分类:
其他好文 时间:
2015-03-10 21:28:00
阅读次数:
162