给定一个整数序列,求解一个子序列,子序列之和等于给定目标值。子序列满足以下条件:
1)子序列是有序的
2)子序列的元素个数不限,可以是给定元素的重复元素。
3)结果中的子序列是唯一的
原题描述如下:
Given a set of candidate numbers (C) and a target number (T), find all unique combinations ...
分类:
其他好文 时间:
2014-06-11 06:26:03
阅读次数:
302
算法导论读书笔记(18)目录最长公共子序列步骤1:描述最长公共子序列的特征步骤2:一个递归解步骤3:计算LCS的长度步骤4:构造LCSLCS问题的简单Java实现最长公共子序列某给定序列的子序列,就是将给定序列中零个或多个元素去掉后得到的结果。其形式化定义如下:给定一个序列
X = ,另一个序列 Z...
分类:
其他好文 时间:
2014-06-10 16:27:04
阅读次数:
273
问题
给定整数: A1,A2,…,An,
求∑jk=iAk 的最大值(为方便起见,如果所有的整数均为负数,则最大子序列和为0)
例如
对于输入:-2,11,-4,13,-5,-2,答案为20,即从A2到A4
分析
这个问题之所以有意思,是因为存在很多求解它的算法。...
分类:
编程语言 时间:
2014-06-08 15:42:23
阅读次数:
265
议题:快速排序实现之五(非递归实现,短序列优先处理,减少递归栈大小)分析:算法原理:此算法实现适用于系统栈空间不足够快速排序递归调用的需求,从而使用非递归实现快速排序算法;使用显示下推栈存储快速排序中的每一次划分结果
(将left和right都压入堆栈),并且首先处理划分序列较短的子序列(也就是在得...
分类:
其他好文 时间:
2014-06-03 08:23:29
阅读次数:
367
DP求解。对Blocks的先按照X降级,再按照Y降级排序,可以转化为最长公共子序列问题,即求子序列权值之和最大。
#include
#include
#include
using namespace std;
#define MAX_SIZE 300
struct Block{
int x;
int y;
int height;
};
int nums...
分类:
其他好文 时间:
2014-06-03 04:39:44
阅读次数:
223
最大连续子序列(HDU1003,1231)
最大递增子序列和,sum[i]=max(sum[j])+a[i],j
最长公共子序列,LCS经典算法(HDU1159)。
题解:
实际上,我没看出hdu1003和1231的本质差别,形式上的差别就是记载的东西不一样,一个是记载下标,一个是记载元素。基本就是那么回事吧。很多算法书在讨论时效都会拿这个例子来说明,让大家看到算法的力量,从一个弱渣算法到...
分类:
其他好文 时间:
2014-06-03 04:19:10
阅读次数:
279
基本概念
串(字符串)
由0个或多个字符组成的有限序列,例如s="hello world"
串名
上例中的s
子串
某串任意连续字符组成的子序列,称为此字符串的子串
空串
0个字符的串,s=""
空格串
由一个或多个字符组成的串
模式匹配算法
...
分类:
其他好文 时间:
2014-06-02 23:28:56
阅读次数:
305
归并排序完全遵循分治模式,主要操作分为三步:1.分解:分解待排序的n个元素序列为2个n/2个元素的子序列。2.解决:使用归并排序递归的排序两个子序列。3.合并:合并两个已排序的子序列。最重要的步骤就是合并2个已经排序的序列。例如:A和B都是从小到大排序的序列。依次对比A的第一个元素和B的第一个元素,...
分类:
其他好文 时间:
2014-05-31 01:27:11
阅读次数:
268
【题目大意】首先给你一个数n,然后给你n个数,现在要你从这n个数字中找一个上升子序列使得这些子序列的和最大。【题目分析】简单dp,求最大上升子序列。首先我们得设两个数组a[1010]和dp[1010]。a[1010]存放输入的数列,dp[1010]用来存放从开始到当前的最大上升子序列:状态转移方程为...
分类:
其他好文 时间:
2014-05-30 21:24:35
阅读次数:
209
希尔排序一。个人理解希尔排序(Shell
Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。其实,希尔排序本质也就是直接插入算法的升级,希尔的基本思想,就是先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的...
分类:
其他好文 时间:
2014-05-29 21:49:30
阅读次数:
516