- 博客(14)
- 收藏
- 关注
原创 leetcode: Find Minimum in Rotated Sorted Array
public class Solution { public static int findMin(int[] num) { int low =0; int high = num.length-1; while(low if(num[(low+high)/2]>num[high]){ low = (
2014-10-23 16:44:56 428
原创 代理模式&java动态代理
这个类本身继承自Proxy类,查看Proxy源码可知h是invocationHandler,也就是说这个类通过调用传入的invocationHandler的invoke方法而实现代理类中相应方法的调用。在这个例子中,由于logProxy方法实现了invocationHandler,并且把这个参数传给了生成的代理类,这个代理类调用doAuditing方法也就是调用了logProxy方法中的invoke方法,从而达到的代理的效果。
2014-09-30 14:53:11 657
转载 operator new和new operator的比较
C++中的operator new与new operator,看上去挺像的两姐妹,却有天壤之别。operator new(1) 只分配所要求的空间,不调用相关对象的构造函数。当无法满足所要求分配的空间时,则 ->如果有new_handler,则调用new_handler,否则 ->如果没要求不抛出异常(以nothrow参数表达),则执行b
2013-09-30 11:01:55 584
转载 builder和abstract factory模式的区别
“嘿,Andy,来帮帮忙,帮我装装机子吧。”,Helen又在那喳喳呼呼了。“好的,好的,喔……,新机诶!”,走过去一看,AndyTao眼一亮。唉,看到人家的新配置,他就有一种据为己有的冲动。说实在的,咱玩电脑的,没几个不这山望着那山高的。。。“这么大个丫头,到现在还是不会装机器。你怎么学的啊?”AndyTao嘴上这么说,心里想,“最好永远学不会!”“好的,好的,谢谢你嘛!不
2013-09-10 14:42:29 1192
原创 设计模式中迷宫的实现,用于学习创建型模式
设计模式一书相信不少人看过。其中创建型模式一节通过一个创建迷宫的例子阐述了工厂模式、抽象工厂模式等创建型模式。对于初学者而言,书中讲解并未实现具体代码,对于几种设计模式的优势不能深刻的体会。出于学习的目的我实现了这个迷宫,并且尽量保持原书中的类结构,用与体会创建型模式的优点。代码并不难,详见注释。本代码中仅仅实现了抽象工厂模式,不过实现其他模式也并不难了。注意启动RTTI,下图为运行效果。
2013-09-06 23:03:59 2075
原创 单例模式(singleton pattern)的几种实现
第一种:使用静态成员实例。#include using namespace std;class singleton{public: static singleton* GetInstance() { if ( m_instance == NULL ) { cout<<"a new instance"<<endl; m_instance = new singl
2013-09-05 17:49:08 846
原创 快排、归并排序、堆排序的实现
#include using namespace std;//quick_sortvoid quick(int *a,int start,int end){ if (start>=end) return; int startx=start; int endx=end; int key=a[start]; while(start<end) {
2013-09-04 16:40:07 522
原创 hdu2222及易错数据(AC自动机)
RT.#include #include using namespace std;const int kind=26;struct node{ node* fail; node* next[kind]; int count;//是否为该单词的最后一个节点 node(){ fail=NULL; count=0; memset(next,NULL,si
2013-08-29 13:02:36 580
原创 WPF image控件前后台设定对比
WPF程序有些时候需要在后台动态增加一些控件,这个时候设置控件的属性并不像在xaml中设置那样直观,下面举一个image控件前后台对应的例子。前台: 后台: Image image1=new
2013-08-27 16:04:25 1201
原创 KMP算法c实现
讲解详见matrix67大神博客,直接上代码了。#include #include int next[100];int pre_processing(char* s){ next[0]=0; int i,j; for(i=1;i<strlen(s);i++) { j=next[i-1]; while(j!=0&&s[j]!=s[i]) j=nex
2013-08-27 01:43:55 613
原创 动态规划之滑雪问题c++实现
问题描述: Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 7
2013-08-22 23:32:04 6177
原创 区间求并集c++实现
#include #define NULL 0using namespace std;struct section//每个小区间{ double start; double end; bool isuse;};struct whole_section//区间并集{ section* sec; int length; int size;
2013-08-21 22:02:03 3656 1
原创 判断三角形与点的关系的一种实现
在二维坐标系中,对三角形ABC和某一点P,设A(x1,y1)、B(x2,y2)、C(x3,y3)、P(x,y),如果向量AB×AP、BC×BP、CA×CP指向同一方向,则说明P点在三角形内部。#include using namespace std;struct Triangle{ int x1; int y1; int x2; int y2; int x3; int y3;
2013-08-21 21:39:29 702
原创 编辑距离问题c语言实现
所谓编辑距离是指一个字符串转化成另外一个字符串所需要的最少编辑次数。允许的编辑方式包括:1)增加一个字符2)删除一个字符3)用一个字符替换原来的字符解决的方法当然是动归了。首先研究子问题,假设两字符串A,B。1)、当两个字符串长度为1时,若字符相同则编辑距离为0;若不同则为1;2)、当一个A的长度为1,B的长度为N时,先利用1)的方法计算A和B第一个字符的编辑距离为t,然后
2013-08-10 21:03:57 4100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人