摘要:
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1#include using ... 阅读全文
摘要:
Template模板方法模式作用:定义一个操作中的算法的骨架。而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。在基类的算法模板中的子算法,设为虚拟函数,将此虚拟函数放至子类中实现,类似思想可参考另一篇博文中的做法,http://www.cnblogs... 阅读全文
摘要:
根据所给信息,选取不同策略;策略模式与工厂模式区别个人理解(工厂模式:通过所给信息建立不同的对象 策略模式:通过所给信息选择不同的策略 )用途不一样工厂是创建型模式,它的作用就是创建对象;策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;关注点不一样一个关注对象创建一个... 阅读全文
摘要:
自底向上法:这种方法一般需要恰当定义子问题“规模”的概念,使得任何子问题的求解都依赖于“更小的”子问题的求解。因而我们可以将子问题按规模排序,按由小至大的顺序进行求解。当求解某个子问题时,它所依赖的那些更小的子问题都已经求解完毕,结果已经保存。每个子问题只需要求解一次,当我们求解它(也是第一次遇到它... 阅读全文
摘要:
引进一个二维数组Array[][],用Array[i][j]记录A[i]与B[j] 的LCS 的长度,sign[i][j]记录ARRAY[i][j]是通过哪一个子问题的值求得的,以决定搜索的方向。问题的递归式写成:回溯输出最长公共子序列过程:// LCSLength.cpp : Defines th... 阅读全文
摘要:
// CMemory.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using namespace std;class Base {public: virtual ... 阅读全文
摘要:
// PointtoMemberFunction.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using namespace std;class A{public: ... 阅读全文
摘要:
《大话设计模式》中就Bridge模式的解释:手机品牌和软件是两个概念,不同的软件可以在不同的手机上,不同的手机可以有相同的软件,两者都具有很大的变动性。如果我们单独以手机品牌或手机软件为基类来进行继承扩展的话,无疑会使类的数目剧增并且耦合性很高,(如果更改品牌或增加软件都会增加很多的变动)两种方式的... 阅读全文
摘要:
在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点:(1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实对象的引用(reference)(3) 装饰对象接受... 阅读全文
摘要:
c++ 享元模式(flyweight)例子(大话设计模式上的例子 c++的):// FlyWeight.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #... 阅读全文