摘要: 侧耳倾听,关于梦想,关于爱情。 阅读全文
posted @ 2012-04-21 23:05 可乐爱上了雪碧 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 就是求最长公共字串的长度,比如两个字符串abcd,abdef,那么它们的最长公共字串为abd, 长度为3。这个题目它不要求字串连续,其实连续也是一样的,两种dp而已。具体题目如下: http://acm.hdu.edu.cn/showproblem.php?pid=1159思路: 两个字符串s1,s2。我用dp[i][j]表示s1前i个字符与s2的前i个字符的最长公共字串长度。那么我 这个值与dp[i-1][j-1 ], dp[i-1][j], dp[i][j-1]的关系是怎样的呢?dp最重要的就是一个状态转移。 其实不一定是从上面这三个状态转化而来,而是我有这么一个想... 阅读全文
posted @ 2012-04-21 22:40 可乐爱上了雪碧 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 思路: 有两种情况,一是要找的这两个节点(p, q),在我遍历的这个节点(r)的两侧,那么我这个节点就是这 两个节点的最小公共父节点;二是节点在同一侧,则 r->left 或者 r->right 为 NULL,另一边返回p或者q, 那么另一边返回的就是他们的最小公共父节点。 递归有两个出口,一是没有找到p或者q,则返回NULL;二是只要碰到p或者q,就立刻返回。参考资料:[1] http://www.leetcode.com/2011/07/lowest-common-ancestor-of-a-binary-tree-part-i.html代码:View Code 1 //求.. 阅读全文
posted @ 2012-04-21 20:40 可乐爱上了雪碧 阅读(2440) 评论(0) 推荐(1) 编辑
摘要: View Code 1 //寻找最小叶子节点值 2 int minLeaveNode(BinaryTreeNode * root) 3 { 4 int lValue, rValue; 5 if(root->m_pLeft) 6 lValue = minLeaveNode(root->m_pLeft); 7 if(root->m_pRight) 8 rValue = minLeaveNode(root->m_pRight); 9 if(!root->m_pLeft && !root->m_pRight) 10 r... 阅读全文
posted @ 2012-04-21 19:36 可乐爱上了雪碧 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 using namespace std; 3 4 struct BinaryTreeNode 5 { 6 int m_nValue; 7 BinaryTreeNode * m_pLeft; 8 BinaryTreeNode * m_pRight; 9 //int tag;10 };11 int foreOrder[8] = {1, 2, 4, 7, 3, 5, 6, 8};12 int inOrder[8] = {4, 7, 2, 1, 5, 3, 8, 6};13 int length = 8;14 Binar... 阅读全文
posted @ 2012-04-21 18:23 可乐爱上了雪碧 阅读(310) 评论(0) 推荐(0) 编辑