自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 oracle初学向导

<br />一、定位<br />oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。<br />  <br />因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去

2010-05-31 20:32:00 711

原创

<br />什么是心?<br />总会问这个问题,何为心?心是世界,心是自己,心是一切?<br /> 

2010-09-13 10:52:00 567

原创 出 和 入

<br />不入世,何以出世?不去体会人间百态,摆出一个愤世嫉俗的态度,怎么才能悟呢?<br />放下清高,放下自命不凡,放下你所厌恶,划分界限的东西,主动融入,不入何以<br />出?不拿起,何以放下?道家讲出世,其实入世却是出世的前提和基础。这无关信仰<br />无关宗教,只论人生的态度,处世的心态。也许很多你看不惯,可是看不惯的东西,<br />却是你在这个世界生存的必修课。

2010-09-13 10:48:00 756

转载 笔试面试之 最大和子矩阵

<br /><br />方法一:求出所有的子矩阵然后再分别计算所有矩阵的和求最大的。复杂度较大,o(n4)<br />方法二:采用转化法,将矩阵问题,转化为一维问题(求最大子序列问题)。<br />#include "stdafx.h"<br />#include <iostream><br />using namespace std;<br /> <br />#define MIN -10000<br /> <br />int ** a;<br />int sum;<br />char * str;<br

2010-08-24 19:32:00 669

转载 笔试面试之完全数

<br /><br />知道什么是完全数吗?完全数又称为完美数,因为它有如下特别的性质:例如6,它有约数1, 2, 3(不算它自身在内),这三个约数的和刚好也是它本身。现在就要你找出这些数<br /> <br />输入<br />多组测试数据,一组里只有一行,就是一个n(1<=n<=5e18)<br /> <br />输出<br />1到n的所有完全数,一个数占一行<br /> <br />样例输入:<br />30<br /> <br />样例输出:<br />6<br />28<br /> <br />

2010-08-20 19:34:00 600

转载 Bloom Filter应用之LOAF

<br /><br />LOAF (List Of All Friends)是一种email的扩展,它允许你在发送电子邮件时连同你的通讯录一起发出。通讯录(邮件地址的集合)用bloom filter来表示,不但大大减少了网络通信量,而且保护了你的隐私。LOAF将你收到邮件中的bloom filter收集到本地作为数据库,从而在其它邮件到来时判断其优先级。LOAF可以帮你把接收的邮件分成三类:<br /> <br />1.         和你有联系的朋友,这类邮件当然优先级最高。<br /> <br />2

2010-08-20 19:02:00 721

转载 笔试面试之 任意数制转换

<br /><br />#include<iostream>      <br /> <br />using namespace std;      <br /> <br />int NumConvert(int n,int k)      <br />{      <br />    long long t = n;      <br />    if(k < 2 || k > 36) return -1;      <br />    if(t == 0)      <br />    {      <

2010-08-20 10:09:00 560

转载 笔试面试之最大对称字串

<br />程序员面试题精选100题(46)-对称子字符串的最大长度<br />字符串2010-07-31 12:51:20阅读147评论0字号:大中小<br />题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。<br />分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。<br />要判断一个字符串是不是对称的,不是一件很难的事情。我们可以先得到字符串首尾两个字符

2010-08-14 10:38:00 1003

转载 设计模式之 笔者的总结

常见设计模式的解析和实现(C++)之二十一-完结篇<br />        一个月下来,把常见的20个设计模式好好复习并且逐个用C++实现了一遍,收获还是很大的,很多东西看上去明白了但是真正动手去做的时候发现其实还是不明白--我深知这个道理,于是不敢怠慢,不敢写什么所谓的解释原理的伪代码,不敢说所谓的"知道原理就可以了"....因为我知道,我还还没有资格说这个话,至少对于设计模式而言我还是一个初学者,唯有踏实和实干才能慢慢的掌握到知识.<br /><br />        在我学习设计模式的过程中,觉得

2010-07-15 10:02:00 659

转载 设计模式之 visitor

常见设计模式的解析和实现(C++)之二十-Visitor模式 作用:<br />表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.<br /><br />UML结构图:<br /><br /><br />解析:<br />Visitor模式把对结点的访问封装成一个抽象基类,通过派生出不同的类生成新的访问方式.在实现的时候,在visitor抽象基类中声明了对所有不同结点进行访问的接口函数,如图中的VisitConcreateElementA函数等,这样也

2010-07-15 09:54:00 555

转载 设计模式之 memento

常见设计模式的解析和实现(C++)之十九-Memento模式 作用:<br />在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.<br /><br />UML结构图:<br /><br /><br />解析:<br />Memento模式中封装的是需要保存的状态,当需要恢复的时候才取出来进行恢复.原理很简单,实现的时候需要注意一个地方:窄接口和宽接口.所谓的宽接口就是一般意义上的接口,把对外的接口作为public成员;而窄接口反之,把接口

2010-07-15 09:31:00 534

转载 设计模式之 iterator

常见设计模式的解析和实现(C++)之十八-Iterator模式作用:<br />提供一种方法顺序访问一个聚合对象中各个元素,,而又不需暴露该对象的内部表示.<br /><br />UML结构图:<br /><br /><br />解析:<br />Iterator几乎是大部分人在初学C++的时候就无意之中接触到的第一种设计模式,因为在STL之中,所有的容器类都有与之相关的迭代器.以前初学STL的时候,时常在看到讲述迭代器作用的时候是这么说的:提供一种方式,使得算法和容器可以独立的变化,而且在访问容器对象的时

2010-07-14 10:00:00 622

转载 设计模式之 state

常见设计模式的解析和实现(C++)之十七-State模式 作用:<br />允许一个对象在其内部状态改变时改变它的行为.<br /><br />UML结构图:<br /><br /><br />解析:<br />State模式主要解决的是在开发中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对原来的代码进行编译.State模式采用了对这些不同的状态进行封装的方式处理这类问题,

2010-07-14 09:45:00 635

转载 设计模式之 strategy

常见设计模式的解析和实现(C++)之十六-Strategy模式 作用:<br />定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.<br /><br />UML结构图:<br /><br /><br />解析:<br />简而言之一句话,Strategy模式是对算法的封装.处理一个问题的时候可能有多种算法,这些算法的接口(输入参数,输出参数等)都是一致的,那么可以考虑采用Strategy模式对这些算法进行封装,在基类中定义一个函数接口就可以了.<br

2010-07-14 09:34:00 486

转载 笔试面试之 随机打印1-100的数,每次只可以打印一次

<br />问题的难点在于随机打,但是要求每次随机不能有重复,倘若有随机函数 random(int a, int b),代表随机打印a到b之间的数. <br /> <br />我们可以考虑偌随机出来的不是直接是1-100的数,而是数组的下标是否可以实现随机数不重复。 例如: int array[100],a[0] 到a[99]分别是1-100 random(0,99),得到一个随机数x,打印出a[x],然后将a[x]与a[99]交换 下次随机函数random(0,98),这样无论这次随机值是多少,a[x]都

2010-07-13 15:00:00 1082

转载 ubantu 更新软件源

Ubuntu软件源<br />对于Ubuntu的在线更新设计,相信您一定觉得十分方便,因为这可以提高系统安装的速度,并节省下载安装CD/DVD的大量时间(目前的Linux 发行版安装都需要多张CD或DVD,对于上网带宽不足的用户,这常会造成下载的困难)。<br />不知您是否想过,这些软件到底存放在哪里?是否可以指定下载的位置?解决此类问题,就必须提及Ubuntu使用的“软件源”(Software Repositories)。<br />在Ubuntu中所谓的“软件源”,是指在世界上许多服务器上放置的软

2010-07-11 19:18:00 2306 1

转载 设计模式之 observer

常见设计模式的解析和实现(C++)之十五-Observer模式 作用:<br />定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.<br /><br />UML结构图:<br /><br /><br /><br />解析:<br />Observer模式定义的是一种一对多的关系,这里的一就是图中的Subject类,而多则是Obesrver类,当Subject类的状态发生变化的时候通知与之对应的Obesrver类们也去相应的更新状态,同时支持动态的添加和

2010-07-11 11:48:00 488

转载 设计模式之 observer

常见设计模式的解析和实现(C++)之十五-Observer模式 作用:<br />定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.<br /><br />UML结构图:<br /><br /><br /><br />解析:<br />Observer模式定义的是一种一对多的关系,这里的一就是图中的Subject类,而多则是Obesrver类,当Subject类的状态发生变化的时候通知与之对应的Obesrver类们也去相应的更新状态,同时支持动态的添加和

2010-07-11 11:40:00 596

转载 设计模式之 command

常见设计模式的解析和实现(C++)之十四-Command模式 作用:<br />将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作.<br /><br />UML结构图:<br /><br /><br />解析:<br />Comnand模式的思想是把命令封装在一个类中,就是这里的Command基类,同时把接收对象也封装在一个类中就是这里的Receiver类中,由调用这个命令的类也就是这里的Invoker类来调用.其实,如果弄清楚了Command

2010-07-11 10:35:00 535

转载 设计模式之 flyweight

常见设计模式的解析和实现(C++)之十三-FlyWeight模式作用:<br />运用共享技术有效地支持大量细粒度的对象。<br /><br />UML结构图:<br /><br /><br /><br />解析:<br />Flyweight模式在大量使用一些可以被共享的对象的时候经常使用.比如,在QQ聊天的时候很多时候你懒得回复又不得不回复的时候,一般会用一些客套的话语敷衍别人,如"呵呵","好的"等等之类的,这些简单的答复其实每个人都是提前定义好的,在使用的时候才调用出来.Flyweight就是基于解

2010-07-09 10:33:00 492

转载 设计模式之 chainofresponsibility

常见设计模式的解析和实现(C++)之十二-ChainOfResponsibility模式 作用:<br />使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.<br /><br />UML结构图:<br /><br /><br /><br />抽象基类:<br />1)Handler:定义一个处理请求的接口,在图中这个接口就是HandleRequset函数,这个类同时有一个指向Handler对象的指针,指向后续的处

2010-07-09 10:15:00 555

转载 设计模式之 templatemethod

常见设计模式的解析和实现(C++)之十一-TemplateMethod模式 作用:<br />定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。<br /><br />UML结构图:<br /><br /><br />抽象基类:<br />1)AbstractClass:抽象基类,定义算法的轮廓<br /><br />解析:<br />TemplateMethod 的关键在于在基类中定义了一个算法的轮廓,但是算

2010-07-09 09:40:00 534

转载 设计模式之 proxy

常见设计模式的解析和实现(C++)之十-Proxy模式作用:<br />为其他对象提供一种代理以控制对这个对象的访问。<br /><br />UML结构图:<br /><br /><br />抽象基类:<br />1)Subject:定义了Proxy和RealSubject的公有接口,这样就可以在任何需要使用到RealSubject的地方都使用Proxy.<br /><br />解析:<br />Proxy其实是基于这样一种时常使用到的技术-某个对象直到它真正被使用到的时候才被初始化,在没有使用到的时候就暂

2010-07-08 20:09:00 530

转载 设计模式之 decorator

常见设计模式的解析和实现(C++)之八-Composite模式 作用:<br />将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。<br /><br />UML结构图:<br /><br /><br />抽象基类:<br />1)Component:为组合中的对象声明接口,声明了类共有接口的缺省行为(如这里的Add,Remove,GetChild函数),声明一个接口函数可以访问Component的子组件.<br /><br />接口函数:<

2010-07-08 19:54:00 472

转载 设计模式之 composite

常见设计模式的解析和实现(C++)之八-Composite模式 作用:<br />将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。<br /><br />UML结构图:<br /><br /><br />抽象基类:<br />1)Component:为组合中的对象声明接口,声明了类共有接口的缺省行为(如这里的Add,Remove,GetChild函数),声明一个接口函数可以访问Component的子组件.<br /><br />接口函数:<

2010-07-07 10:39:00 449

转载 设计模式之 bridge

<br />常见设计模式的解析和实现(C++)之七-Bridge模式 作用:<br />将抽象部分与它的实现部分分离,使它们都可以独立地变化。<br /><br />UML结构图:<br /><br /><br />抽象基类:<br />1)Abstraction:某个抽象类,它的实现方式由Implementor完成.<br />2)Implementor:实现类的抽象基类,定义了实现Abastraction的基本操作,而它的派生类实现这些接口.<br /><br />接口函数:<br />1)Impl

2010-07-06 22:33:00 489

转载 设计模式之 adapt

<br />常见设计模式的解析和实现(C++)之六-Adapt模式 作用:<br />将一个类的接口转换成客户希望的另外一个接口。Adapt 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。<br /><br />UML示意图<br />1)采用继承原有接口类的方式<br /><br />2)采用组合原有接口类的方式<br /><br />解析:<br />Adapt模式其实就是把完成同样的一个功能但是接口不能兼容的类桥接在一起使之可以在一起工作,这个模式使得复用旧的接口成为可能.<b

2010-07-06 15:29:00 667

转载 设计模式之 singleton

<br />常见设计模式的解析和实现(C++)之五-Singleton模式 作用:保证一个类仅有一个实例,并提供一个访问它的全局访问点。<br /><br />UML结构图:<br /><br /><br />解析:<br />Singleton模式其实是对全局静态变量的一个取代策略,上面提到的Singleton模式的两个作用在C++中是通过如下的机制实现的:1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对于一个类的所有对象而言是惟一的 2)提供一个访问它的全局访问点,也就是提

2010-07-06 14:43:00 478

转载 设计模式之 prototype

常见设计模式的解析和实现(C++)之四-Prototype模式 作用:<br />用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。<br /><br />UML结构图:<br /><br />抽象基类:<br />1)Prototype:虚拟基类,所有原型的基类,提供Clone接口函数<br /><br />接口函数:<br />1)Prototype::Clone函数:纯虚函数,根据不同的派生类来实例化创建对象.<br /><br />解析:<br />Prototype模式其实就是常说的

2010-07-05 18:43:00 446

转载 设计模式之 builder

常见设计模式的解析和实现(C++)之三-Builder模式作用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。UML结构图:适用于以下情况:1)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2)当构造过程必须允许被构造的对象有不同的表示时。抽象基类:1)Builder:这个基类是全部创建对象过程的抽象,提供构建不同组成部分的接口函数接口:1)Builder::BuildPartA,Builder::BuildPartB:是对一个对象不同部分的构建函数接口,

2010-07-05 18:16:00 474

转载 设计模式之 abstractfactory

常见设计模式的解析和实现(C++)之二-Abstract Factory模式 作用: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 UML结构图: 抽象基类: 1)ProductA,ProductB:分别代表不同类型的产品,而它们的派生类则是这种产品的一个实现. 2)AbstractFactory:生产这一系列产品的一个抽象工厂,它的派生类是不同的实现. 接口函数: 1)AbstractFactory::CreateProductA和AbstractFactory::CreatePr

2010-07-04 22:16:00 411

转载 设计模式之 factory 模式

常见设计模式的解析和实现(C++)之一-Factory模式作用:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。UML结构图:抽象基类:1)Product:创建出来的对象的抽象基类.2)Factory创建对象的工厂方法的抽象基类.接口函数:1)Creator::FactoryMethod:纯虚函数,由派生类实现,创建出对应的Product.解析:在这个模式中,有两个抽象基类,一个是Product为创建出来的对象的抽象基类,一个是Factory

2010-07-04 21:46:00 388

转载 UML符号

<br /><br />虚线箭头 表示“依赖关系”,依赖有“使用”的语义,比如患者与医生的关系。<br />实线箭头 表示“带了导航行的关联关系”,从一个类到另一类。<br />使用实线箭头时通常会带上“多重性”的表达方式。如:一对多,一对一,多对多等等<br />图一:<br /><br /><br />此实线箭头表示, 继承 , 从一个非接口类的继承.<br /><br />图二:<br /><br /><br />那条连线表示双向关联 :<br />看左边, Flight扮演assignedFight

2010-07-04 20:58:00 553

转载 笔试面试之扑克牌顺子

<br /><br /><br />从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。<br />  <br />方法一:1.排序,2.求出0个数 3.求出非0的牌之间的差距 如果差距小于等于0的个数那么即为顺子。时复o(nlogn+n) <br />方法二:求出0个数,非0牌的最大值和最小值,max-min+N0<= 5 ? 如果满足那么是顺子。中间加上重复的判断。时复o(n)<br /> <br /

2010-07-02 10:34:00 533

转载 笔试面试之递归颠倒栈

<br /><br />题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。<br />分析:乍一看到这道题目,第一反应是把栈里的所有元素逐一pop出来,放到一个数组里,然后在数组里颠倒所有元素,最后把数组中的所有元素逐一push进入栈。这时栈也就颠倒过来了。颠倒一个数组是一件很容易的事情。不过这种思路需要显示分配一个长度为O(n)的数组,而且也没有充分利用递归的特性。<br />我们再来考虑怎么递归。我们把栈{1, 2, 3

2010-07-02 09:41:00 1240

转载 笔试面试之倒序输出链表

<br /> <br />输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:<br />struct ListNode<br />{<br />      int       m_nKey;<br />      ListNode* m_pNext;<br />};<br /> <br />方法一:先逆序链表在顺序遍历<br />方法二:采用栈,顺序遍历链表,将每个节点压栈,然后弹栈<br />方法三:采用递归,每次调用都先转化为对下一个节点的调用,在输出<br /><br /><

2010-06-23 21:01:00 1051

原创 笔试面试之安全的赋值操作符

<br /><br />类CMyString的声明如下:<br />class CMyString<br />{<br />public:<br />      CMyString(char* pData = NULL);<br />      CMyString(const CMyString& str);<br />      ~CMyString(void);<br />      CMyString& operator = (const CMyString& str);<br /><br />p

2010-06-23 16:59:00 500

转载 笔试面试之奇偶partition

<br /><br />输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。<br /> <br />方法一:遍历数组统计出奇数偶数个数,再申请一个数组,放置即可,时复o(n),空复o(n)<br />方法二:从开头遍历,遇到偶数则从后面寻找最接近的一个奇数交换,若找不到,则返回完成。时复o(n方)<br />方法三:类似于quick sort 从两头向中间遍历,低指针找偶数,高指针找奇数,找到后交换,直至低指针>=高指针,时复o(n

2010-06-23 09:56:00 540

转载 笔试面试之字符串的全排列

<br />输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。<br /> <br /> <br />我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符bc的排列求好之后,我们把第一个字符a和后面的b交换,得到bac,接着我们固定第一个字符b,求后面两个字符ac的排列。现在是把c放到第一位置的时候了。记住前面我们已经把原先的第一个

2010-06-22 19:41:00 1034 2

转载 笔试面试之二叉树的深度

<br /><br />输入一棵二元树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。<br /><br /><br />例如:输入二元树:<br />                                            10<br />                                          /     /<br />                                    

2010-06-22 18:57:00 487

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除