摘要:
1. 你对回溯算法的理解 回溯法本质上是深度优先搜索,解集树通常为n层二叉树或n层m叉树,哪种适合用哪种,因为使用了递归,所以总体上时间复杂度和空间复杂度较高,不如动态规划高效,但简单易解,比较容易想到解法。另外评价一个回溯算法的好坏可以通过剪枝函数来评判,好的多个剪枝函数,可以使回溯更高效,避免无 阅读全文
摘要:
1.对贪心算法的理解: 贪心法是求解一类最优化问题的方法,它总是考虑在当前状态下局部最优(或较优)的策略,来使全局的结果达到最优(或较优)。显然,如果采取较优而非最优的策略(最优策略可能不存在或者不易想到),得到的全局结果也无法是最优的。而要获得最优的结果,则要求中间的每一步策略都是最优的,因此严谨 阅读全文
摘要:
编辑距离问题 1.问题描述: 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。 对于给定 阅读全文
摘要:
题目: 设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]中的某个元素x(如a[left])对a[left]~a[rig 阅读全文
摘要:
本章上机了两次,第一次是最大子列和问题。老师说的是分成三段求解,可我第一次写完后没有过,因为只写两段,还差中间跨度那段,这是我搭档跟我讲的,然后经过我们那个的商讨修改,最终解决了这个问题。 第二次是关于基于快速排序的找第k小元素,因为有了提示,我们两个都分别独立完成了这道题,可是我们在快排算法那里一 阅读全文
摘要:
1.对于分治法的认识: 分治法往往运用于解决较为大型的问题,在处理大型问题的时间上(T(n)=一(nlgn))相较于暴力求解有着极大的优势,以下为分治法进行操作的具体步骤: 分解步骤:由于处理的问题较为大型,故分解成形式一致但规模较小的子问题对于问题的处理效率大有裨益,个人认为这也是分治法的核心。 阅读全文