最优三角剖分 与矩阵连乘的不同点 不同点就在于递归公式的不同,最优三角剖分的递归公式如下: 当i=j的时候,m[i][j]=0; 当i<j的时候,m[i][j]=min{m[i][k]+m[k+1][j]+w(v(i-1)vkvj)}…
分类:Algorithm
解析动态规划问题(1)
关于最长公共子序列(LCS) 最长公共子序列和最长公共子串是有区别的,之前我一直把它们混淆。 最长公共子串举例:假设S1={A,D,C,B,E,X,Q},S2={H,P,D,C,B,E,M,L} 那么它们的最长公共子串就是{D,C,B,E}…
《剑指Offer》题目解析(2)
题目1 滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}…
算法学习(2):分治法(下)
大整数乘法 1.算法原理 如果我们想要计算两个较大的数字相乘的时候,由于计算机硬件限制可能无法计算,因此我们可以将每个乘数用加法和乘法做分解,当分解到每个因子只是一位数的时候,乘法就很简单了,这也是一种分治法。 (1)分解:首先将2个大整数…
算法学习(2):分治法(上)
二分法 1.算法设计 用一维数组S[]存储该有序序列,设变量low和high表示查找范围的下界和上界,middle表示查找范围的中间位置,x为特定的查找元素。 (1)初始化。令low=0,high=n-1。 (2)middle=(high-…
算法学习(1):贪心算法
Dijkstra算法 待后续补充 哈夫曼编码 1.算法介绍 哈夫曼编码采取的贪心策略是每次从树的集合中取出没有双亲且权值最小的两个树为左右子树,构造一棵新树,新树根结点的权值为其左右孩子的结点权值之和,将新树插入到树的集合之中。 求解步骤如…