摘要:
一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB 则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 二,算法求解 这是一个动态规划的题目。对于可用动态规划求解的问题 阅读全文
摘要:
一,问题描述 给定一个整数N,求解该整数最少能用多少个Fib数字相加得到 Fib数列,就是如: 1,1,2,3,5,8,13.... Fib数列,满足条件:Fib(n)=Fib(n-1)+Fib(n-2) Fib(0)=1 Fib(1)=1;Fib数字,就是Fib数列中的某个数。 比如70 = 55 阅读全文
摘要:
一,问题描述 给定一棵二叉树 和 一个整数,打印出二叉树中结点值的和为给定的整数的所有路径。注意:路径是指:从二叉树的根结点开始的,往下一直到叶子结点过程中 所经过的结点(包括根结点(起点)和叶子结点(终点))。 其中,关于二叉树相关知识可参考:二叉查找树的递归实现及递归分析(http://www. 阅读全文
摘要:
一,问题介绍 近来接触了不少关于二叉树的递归操作的题目,对递归又有了更深一步的理解。这篇文章要解决的问题是: 给出一个序列,判断该序列是否为二叉树查找树的后序遍历序列。我们知道:二叉树查找树中序遍历是有序的。也就是说,给定了后序遍历序列,其实就知道了中序遍历序列。因为,把后序遍历序列排序就得到了中序 阅读全文
摘要:
一,问题介绍 本文章讨论两个问题: ①如何判断两棵二叉树的结构是一样的、对应的每个结点都有着相同的值。--即判断两棵二叉树是一样的 ②给定两棵二叉树,如何判断一棵二叉树是另一棵二叉树的子结构 ③给定两棵二叉树,如何判断一棵二叉树是另一棵二叉树的子树 注意,子结点与子树有那么一点点不同。 上面的二叉树 阅读全文
摘要:
一,问题描述 给定一个N x N 的矩阵(方阵),按照从外向里的以顺时针方向依次打印矩阵中的每个元素。 比如:一个 3X3的矩阵如下:打印顺序为:1 2 3 6 9 8 7 4 {1,2,3}{4,5,6}{7,8,9} 打印方向如下: 二,算法思路 可以采用递归的方式来打印整个矩阵中的元素。 首先 阅读全文
摘要:
一,问题介绍 求解一棵二叉树的镜像。所谓镜像,就是从二叉树的根到叶结点的每一层,将所有的非叶子结点的孩子进行交换。 比如说,下面两棵二叉树互为镜像: 二,算法分析 从根结点开始,先交换根结点的左右孩子, 然后再依次交换根结点的左右孩子的孩子...... 时间复杂度分析:由于每个结点都会遍历一次,故时 阅读全文
摘要:
一,介绍 Oozie是Hadoop的工作流系统,如果使用Oozie来提交MapReduce作业(Oozie 不仅仅支持MapReduce作业,还支持其他类型的作业),可以借助Oozie Coordinator 作业来实现定时运行。 对于Oozie的作业而言,在它提交给Hadoop之前首先需要部署好。 阅读全文
摘要:
一,介绍 分治算法主要包含两个步骤:分、治。分,就是递归地将原问题分解成小问题;治则是:在解决了各个小问题之后(各个击破之后)合并小问题的解,从而得到整个问题的解 二,分治递归表达式 分治算法一般都可以写出一个递归表达式;比如经典的归并排序的递归表达式:T(N)=2T(N/2)+O(N) T(N)代 阅读全文
摘要:
一,希尔排序算法介绍 ①希尔排序又称缩小增量排序 ,它本质上是一个插入排序算法。为什么呢? 因为,对于插入排序而言,插入排序是将当前待排序的元素与前面所有的元素比较,而希尔排序是将当前元素与前面增量位置上的元素进行比较,然后,再将该元素插入到合适位置。当一趟希尔排序完成后,处于增量位置上的元素是有序 阅读全文