码迷,mamicode.com
首页 >  
搜索关键字:子序列    ( 5133个结果
最长递增子序列(LIS)求解
问题描述 最长递增子序列也称 “最长上升子序列”,简称LIS ( longest increasing subsequence)。设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lis=,其中k1 如:求一个一维数组arr[i]中的最长递增子序列的长度,如在序列{ 7, 1, 6, 5, 3, 4, 8 }中,最长递增子序列长度为4,其递增子序列为:1,3,4,8。...
分类:其他好文   时间:2014-05-15 15:06:59    阅读次数:328
FZOJ 2129 子序列个数
OJ题目:click here~~ 题目分析:设dp[ i ] 为前i个数的子序列的个数 , 下标从1开始。计算dp[ i ] 。第一种情况, 如果x[ i ] 与前面的数都不相同 , 则 dp[ i ] = dp[ i - 1] + dp[ i - 1] + 1 , 即 = 都把x[ i ] 放在后面 + 都不把x[ i ]放在后面 + x[ i ] 单独成一个序列。 第二种情况,如果x[...
分类:其他好文   时间:2014-05-15 05:13:13    阅读次数:223
Leetcode 动态规划 Maximum Subarray
题意:最大连续子序列和,在一个数组中找到和最大的连续子数组 思路:dp, 对于第i个数,有两种选择:把它加入在子数组里,不加入子数组(子数组到此结束) 加不加入子数组,要比较它加入前后子数组的总和是变大了还是变小了,如果变大则加入,变小则不加入 所以,我们需要记录以i-1结尾的子数组的总和,最后的结果在这些总和中取最大的那个 f[i] = max(f[i-1]+a[i],f[i-1]); max({f[i]}) 实现时用两个变量,一个保存f[i-1],一个保存目前为止最大的f[i] 复杂度:时间O(n),空...
分类:其他好文   时间:2014-05-14 21:53:14    阅读次数:250
排序算法 之 希尔排序
希尔排序是由D.L.Shell于1959年提出的,所以称为希尔排序。希尔排序又称缩小增量排序,是插入排序的一种改进。 基本思想:希尔排序是基于插入排序的以下特点:待排序的序列元素数量越少排序速度越快;待排序序列的元素基本有序时排序速度越快;基于以上思想将待排序序列分为多个子序列分别进行插入排序,然后...
分类:其他好文   时间:2014-05-13 22:11:01    阅读次数:272
最长公共子序列python实现
最长公共子序列是动态规划基本题目,下面按照动态规划基本步骤解出来。 1.找出最优解的性质,并刻划其结构特征 序列a共有m个元素,序列b共有n个元素,如果a[m-1]==b[n-1],那么a[:m]和b[:n]的最长公共子序列长度就是a[:m-1]和b[:n-1]的最长公共子序列长度+1;如果a[m-1]!=b[n-1],那么a[:m]和b[:n]的最长公共子序列长度就是MAX(a[:m-1]和...
分类:编程语言   时间:2014-05-13 07:57:53    阅读次数:538
排序算法 之 归并排序
归并排序也是基于分治思想的一种排序算法,是通过对两个或两个以上的有序序列合并来实现的,对两个序列合并的叫两路归并,对两个以上序列合并的叫多路归并。归并排序的时间复杂度也为O(N*logN)。下面来看一下两路归并的实现:基本思想:归并排序时先找出序列的中间元素把序列分解为两个子序列,对子序列重复这个过...
分类:其他好文   时间:2014-05-12 05:47:59    阅读次数:298
poj Problem A. Score Sequence(暴力)
这道题,对于我这种英文不好的人来说,有点费劲啊。题目的意思:给你两组成绩,你要找出他们之间最大的公共子序列,不能有重复,然后输出两组数据。第一组就是:按照从大到小输出最大子序列。第二组就是:按照个位数由小到大输出,若个位数一样大,则小的在前输出最大子序列。解题思路基本上已经出来了,就是千万要注意就是...
分类:其他好文   时间:2014-05-11 05:13:47    阅读次数:384
排序算法学习之归并排序
1. 归并排序原理:有长度为n的子序列a[n],可以将其看做n个长度为1的子序列,将相邻子序列两两归并后子序列数量减少一半,再对子序列进行两两归并,数量又减少一般,重复直到得到一个长度为n的子序列2. 实现归并操作的代码如下:/*array[s…m]和array[m+1…t]均已各自有序,合并使得a...
分类:其他好文   时间:2014-05-10 00:28:40    阅读次数:382
HDU 4283 You Are the One 区间dp
题意: 题意好复杂。。。 给定n个人,从左到右排好队。 他们依次从左到右离开队伍。 每个人有个权值d 当某个人是第k-th离开队伍的,那么不开心值为 d*(k-1) 有一个操作,对于一个子序列,可以把前面一段翻转。 问最小的不开心值和。 #include #include #include #include #include #include using namespace...
分类:其他好文   时间:2014-05-09 20:45:04    阅读次数:288
排序算法学习之快速排序
快速排序基本思想:选取一个枢轴元素(图简单可选第一个),通过对序列一次遍历(中间涉及到数的交换),将该枢轴放置到序列合适位置,保证其左边数都比它小,右边数都比它大,然后利用递归思想对其左右两个子序列进行同样排序。快熟排序的基本实现过程:将枢轴元素key备份,序列头尾各设置一个游标——i和j,尾部.....
分类:其他好文   时间:2014-05-09 13:01:56    阅读次数:360
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!