ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

05 2013 档案

摘要:转载:http://www.wutianqi.com/?p=596 在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。对每个序列都可以写出以上每个类型的一个母函数。构造母函数的目的一般是为了解决某个特定的问题,因此选用何种母函数视乎序列本身的特性和问题的类型。这里先给出两句话,不懂的可以等看完这篇文章再回过头来看: 1.“把组合问题的加法法则和幂级数的乘幂对应起来” 2.“母函数... 阅读全文
posted @ 2013-05-30 19:27 ldjhust 阅读(585) 评论(0) 推荐(0) 编辑

摘要:template <class BidirectionalIterator> bool next_permutation (BidirectionalIterator first, BidirectionalIterator last); 可以获取当前排序组合的下一个最接近的组合(数字组合或字符串组合都可以)。与其功能相反的有pre_permutation。具体见C++ reference(http://www.cplusplus.com/reference/algorithm/next_permutation/)。 阅读全文
posted @ 2013-05-29 17:35 ldjhust 阅读(167) 评论(0) 推荐(0) 编辑

摘要:转载:http://blog.csdn.net/wu_lai_314/article/details/8241697CRT detected that the application wrote to memory after end of heap buffer多是中间对其进行了一些操作,在程序结束处,释放内存的时候,引起错误:HEAP CORRUPTION DETECTED:after Normal block(#***) at 0x****.CRT detected that application wrote memory after end of heap buffer.错误原因:以 阅读全文
posted @ 2013-05-28 21:28 ldjhust 阅读(508) 评论(0) 推荐(0) 编辑

摘要:sudo apt-get install xubuntu-desktop 阅读全文
posted @ 2013-05-27 17:33 ldjhust 阅读(142) 评论(0) 推荐(0) 编辑

摘要:当使用wav格式的声音文件出现如题错误时,估计参数没有配置正确,以下是一个参考配置:(HTK支持部分.wav 格式的)#coding parametersSOURCEFORMAT= WAVTARGETKIND= MFCC_E_D_A_ZTARGETRATE= 100000.0SAVECOMPRESSED= TSAVEWITHCRC= TWINDOWSIZE= 250000.0USEHAMMING= TPREEMCOEF= 0.97NUMCHANS= 26CEPLIFTER= 22NUMCEPS= 12ENORMALISE= F 阅读全文
posted @ 2013-05-26 21:46 ldjhust 阅读(595) 评论(0) 推荐(0) 编辑

摘要:转自:http://blog.sina.com.cn/s/blog_87862d6a01012i9n.html1,下载HTK的linux版本。 方法一:google一下HTK,然后官网注册个用户名,下载HTK-3.4.1.tar.gz 和 HTK-samples-3.4.1.tar.gz 方法二:去csdn下载,别人已经从官网下载好了 http://download.csdn.net/source/1698616 2,安装X11 $ sudo apt-get install libx11-dev 3,安装HTK > tar xzf HTK-3.4.1.tar.gz > cd h.. 阅读全文
posted @ 2013-05-22 18:33 ldjhust 阅读(381) 评论(0) 推荐(0) 编辑

摘要:位集bitset是C++的一个类库,其声明方式为bitset<variable_length> variable(val);其中variable_length是需要的位的长度,variable是变量名,val为初始化值。下面就通过利用bitset对一个文件进行排序的方式简要说明bitset的使用方式。 假设文件里面没有重复的数字,文件的长度不超过1000,文件里面每个单独的数字也不超过1000。 1 int FileSort(string fileName) 2 { 3 if (0 == fileName.size()) 4 { 5 return 1; 6... 阅读全文
posted @ 2013-05-22 12:56 ldjhust 阅读(249) 评论(0) 推荐(0) 编辑

摘要:返回引用: 理解返回引用至关重要的是:千万不能返回局部变量的引用。确保返回引用安全的一个好方法:请自问,这个引用指向哪个在此之前存在的对象? 阅读全文
posted @ 2013-05-18 10:12 ldjhust 阅读(114) 评论(0) 推荐(0) 编辑

摘要:1.当需要修改调用函数中的数据对象。2.传递引用而不是整个数据对象,可以提高效率。引用和指针的区别:相同点都是地址的概念,指针指向一块内存,内容就是指向内存的地址,而引用就是一块内存的地址。不同点1.引用仅是一个别名(不需要分配内存),而指针是一个实体(需要分配内存)。2.引用定义时必须初始化,且以后不可以改变,而指针不需要。3.引用不可以为空(NULL),而指针可以为空。4.引用不可是const类型的,而指针可以是,且const类型的指针和引用更相似。5.引用无需解引用(*),而指针需要。6.sizeof(引用)的值是所指向变量的大小,而sizeof(指针)的值是指针的大小(32位)是4。7 阅读全文
posted @ 2013-05-18 10:07 ldjhust 阅读(129) 评论(0) 推荐(0) 编辑

摘要:assert仅在调试版本中起作用,而不会存在于release版本。assert仅用于检查确实不可能的条件,这只对程序的调试有帮助,但不能代替运行时的逻辑检查,也不能代替对程序可能产生的错误的检测。 1 int foo(int a[], size_t n) 2 { 3 assert (a != NULL); // 仅在debug版本中对程序调试有帮助,可以更快的定位错误的地点 4 5 if (NULL == a) 6 { 7 // 这个检查也是不可丢弃的,防止在release版本中出现空指针而得不到有效处理的情况 8 return (-... 阅读全文
posted @ 2013-05-18 09:36 ldjhust 阅读(199) 评论(0) 推荐(0) 编辑

摘要:题目:给定两个数n 和 m,要求在1~n中输出所有和为m的组合。思路:利用栈进行递归和回溯就OK了。代码如下: 1 void FindSum(int n, int m) 2 { 3 // 定义一个共享的栈 4 static int Stack[MAX]; 5 static int nTop = -1; 6 7 if ((n <= 0) || (m <= 0)) 8 { 9 return;10 }11 12 if (m > n)13 {14 Stack[++nTop] = n;15 ... 阅读全文
posted @ 2013-05-06 15:42 ldjhust 阅读(321) 评论(0) 推荐(1) 编辑

摘要:题目:给定两个字符串,求这两个字符串的最长公共子序列。例如:cnblog 和 belogn 的最长公共子序列是blog。 0 , i == 0 || j == 0思路:利用动态规划的思想 C[i][j] = max{C[i-1][j], C[i][j-1]}, x[i] != y[j] C[i-1][j-1] + 1 , x[i] == y[j]代码如下: 1 void LongestCommenSubSequence(char Str1[], int M, ... 阅读全文
posted @ 2013-05-04 17:07 ldjhust 阅读(187) 评论(0) 推荐(1) 编辑

摘要:题目:输入一个字符串,输出其所有的排列组合。思路:分别将每一个字符固定在首位置,然后求后面字符的排列组合,递归的思想。代码如下:1 void Permutation(char *Str)2 {3 assert (Str != NULL);4 5 Permutation (Str, Str);6 } 1 void Permutation(char *Str, char *pTemp) 2 { 3 assert (Str != NULL); 4 5 assert (pTemp != NULL); 6 7 if (*pTemp == '\0') 8 ... 阅读全文
posted @ 2013-05-03 14:03 ldjhust 阅读(173) 评论(0) 推荐(0) 编辑

摘要:题目:合并两个单向有序链便,保证合并之后的链表依然是有序的。例如:1->3->5和2->4->8合并完之后:1->2->3->4->5->8思路:运用递归,很简洁。代码如下: 1 ListNode *CombineList(ListNode *List1, ListNode *List2) 2 { 3 if (NULL == List1) 4 { 5 return (List2); 6 } 7 8 if (NULL == List2) 9 {10 return (List1);11 }12 13 List... 阅读全文
posted @ 2013-05-03 13:25 ldjhust 阅读(309) 评论(1) 推荐(1) 编辑

摘要:在字符串中找出连续最长的数字串,例如:abcd12345ed125ss123456789, 输出123456789。思路:利用一个数组记录各个数字字串的长度。代码如下: 1 void LongestSubNumberString(const char *Str) 2 { 3 assert (Str != NULL); 4 5 int nLength = strlen (Str); 6 7 if (0 == nLength) 8 { 9 printf ("空字符串!\n");10 return;11 }12 13 ... 阅读全文
posted @ 2013-05-03 12:00 ldjhust 阅读(414) 评论(0) 推荐(0) 编辑

摘要:题目:输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序。为了简单起见,我们假设push 序列的任意两个整数都是不相等的。比如输入的push 序列是1、2、3、4、5,那么4、5、3、2、1 就有可能是一个pop 系列。思路:建立一个栈,若栈不为空,检查栈顶元素是否与pop序列将要弹出的元素相同,若相同则弹出栈顶元素,若不同,则检查push序列,将push序列中将与pop序列将要弹出元素不同的全部压入栈,直到找到相同的,若在push剩下的元素中找不到与pop序列将要弹出的元素相同的元素,则这个pop序列不可能是push序列的一个弹出序列,循环下去 阅读全文
posted @ 2013-05-03 11:22 ldjhust 阅读(246) 评论(0) 推荐(0) 编辑

摘要:题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串345,则输出整数345。思路:在这里我们只考虑int型所能表示的范围内的整数,即[-2147483648, 2147483647),超过这个范围的我们不做处理,其实思路都一样,只是代码需要稍作修改。这道题考的就是细心,所有的方面都要考虑到(溢出、空字符串、正负号、包含不是数字字符的字符串)。 代码有注释,这里就不做过多解释:PS:代码略微有些长 1 int StringToInt(const char *Str) 2 { 3 assert (Str != NULL); 4 5 if ('\... 阅读全文
posted @ 2013-05-02 16:58 ldjhust 阅读(694) 评论(0) 推荐(0) 编辑

摘要:题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句。思路:利用类初始化时会自动调用构造函数可以完成,还有几种方法,以后再说。 1 #include <iostream> 2 #include <cassert> 3 4 using namespace std; 5 6 class SUM 7 { 8 private: 9 static int N;10 static int Sum;11 12 public:13 SUM()14 {1... 阅读全文
posted @ 2013-05-02 14:12 ldjhust 阅读(155) 评论(0) 推荐(0) 编辑

摘要:以防生疏,所以今天又写了一下二叉树的前中后序递归和非递归的实现:二叉树的节点数据结构:1 struct BinaryTreeNode2 {3 int nData;4 5 BinaryTreeNode *lChild;6 BinaryTreeNode *rChild;7 };最后用来测试的树: 1 / \ 2 4 \ / \ 3 5 6 \ 7前序递归代码: 1 void RecursionBinaryTreePreOr... 阅读全文
posted @ 2013-05-02 11:31 ldjhust 阅读(200) 评论(0) 推荐(0) 编辑

摘要:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。思路:ASCII码表总共只有255个字符,只需建立一个整型数组分别存储每一个字符出现的次数,再顺序遍历字符串,查找其对应的在字符串中出现的次数,首先只出现一次的字符就是我们需要的字符。基于以上分析,代码如下: 1 char FirstOnceChar(const char *Str) 2 { 3 assert (Str != NULL); 4 5 // ASCII总共只有255个字符 6 int Count[255]; 7 8 memset (Count, 0, 255 * ... 阅读全文
posted @ 2013-05-01 17:09 ldjhust 阅读(189) 评论(0) 推荐(0) 编辑

摘要:题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。例如输入78/ \6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11。二叉树节点的数据结构:1 struct BinaryTreeNode2 {3 int nData;4 5 BinaryTreeNode *lChild;6 BinaryTreeNode *rChild;7 };思路:按层次遍历一般用队列很容易实现,直接上代码: 1 void LevelTraversalBinaryTree(BinaryTreeNode *root) 2 { 3 asser... 阅读全文
posted @ 2013-05-01 16:41 ldjhust 阅读(616) 评论(2) 推荐(0) 编辑

摘要:题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入:8/ \6 10/\ /\5 7 9 11输出:8/ \10 6/\ /\11 9 7 5二分查找树的节点数据结构为:1 struct BinaryTreeNode2 {3 int nData;4 5 BinaryTreeNode *lChild;6 BinaryTreeNode *rChild;7 };思路:很简单,每次交换根节点的左右子树直到也节点即可,直接上代码.递归方法: 1 void ChangeToMirr... 阅读全文
posted @ 2013-05-01 15:56 ldjhust 阅读(183) 评论(0) 推荐(0) 编辑

摘要:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15 和数字15。由于4+11=15,因此输出4 和11。思路:因为数组是升序排列的(即使没有排序,我们也可以先排下序),所以很简单,设置两个循环变量,左边循环指向数组第一个数的下标,右边循环变量指向数组最后一个数的下标,然后两个数求和与指定的数比较大小,若等于则找到了一组数,推出循环;若大于,则将右边的循环标量往左移一位,继续比较;若小与,则将左边循环变量往右移一位,继续比较,若一 阅读全文
posted @ 2013-05-01 14:52 ldjhust 阅读(298) 评论(1) 推荐(1) 编辑

摘要:题目:输入一个单向链表,输出该链表中倒数第k 个结点。链表的倒数第0 个结点为链表的尾指针。链表数据结构定义如下:1 struct LISTNODE2 {3 int nData;4 5 LISTNODE *next;6 };思路:用两个指针,第一个指针先走k步,然后第二个指针指向第一个节点,开始和第一个指针一起往后走。注意:1、我假设这个链表有头节点,若要求链表无头节点,则代码需做修改,但核心思想是一样的 2、注意k的范围,对于k的各种取之给一个合适的反馈。基于以上分析,写出代码: 1 LISTNODE *GetLastKNode(LISTNODE *head, int k... 阅读全文
posted @ 2013-05-01 14:20 ldjhust 阅读(287) 评论(0) 推荐(0) 编辑

摘要:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义距离为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。 二叉树的数据结构:1 struct BinaryTreeNode2 {3 int nData;4 5 BinaryTreeNode *lChild;6 BinaryTreeNode *rChild;7 }; 思路:这里的最大距离出现的地方有两种情况,一种是穿过根节点的两个叶节点的最大距离,另一种情况是左子树的最大距离或右子树的最大距离。对于前一种情况我们只需返回左右子树的深度再加上根节点下的两条边即可,因此我们可... 阅读全文
posted @ 2013-05-01 11:13 ldjhust 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示