摘要: 今天面试被一道没见过的题,完全整闷了。求一段字符串的最长重复子串。后来网上看看博客,竟然可以用KMP写,为自己的无知感到羞愧。好吧,我来学习一下如何用KMP方法解决这样的问题,关键是next的特性来解决这个问题。#include #include using namespace std;int ... 阅读全文
posted @ 2014-09-25 19:29 Awy 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 1.树的子结构问题,参照《剑指offer》上面试题18.bool DoseTree1HaveTree2(BinaryTreeNode *pRoot1, BinaryTreeNode *pRoot2){ if(pRoot2 == NULL) return true; if(p... 阅读全文
posted @ 2014-09-24 21:23 Awy 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 1. 编写一个方法,洗一副牌。要求做到完美洗牌,换言之,这副牌52!中排列组合出现的概率相同。假设给定一个完美的随机数发生器。 假设有个方法shuffle对n-1个元素有效,我们可以用它来打乱n个元素的次序。我们会先打乱前n-1个元素的次序,然后,取第n个元素,将它与数组中的元素随机交换。这是递归... 阅读全文
posted @ 2014-09-23 23:51 Awy 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 昨天去去哪儿笔试,碰到了一个我们一直很熟悉的命令(diff——ubuntu下面),可以比较字符串,即根据最长公共子串问题,如果A中有B中没有的字符输出形式如下(-ch),如果A中没有,B中有可以输出如下形式(+ch).#include #include #include using namesp... 阅读全文
posted @ 2014-09-23 09:51 Awy 阅读(539) 评论(3) 推荐(0) 编辑
摘要: 以前一直不懂LCS问题,然而找工作被LCS折磨的,与那个公司无缘了。 最长公共子序列问题是一道经典的动态规划问题,最长公共子序列问题也有最优子结构。即:Xi即X序列的前i个字符(1属于LCS(X,Y);若:xm==yn(最后一个字符相同),则不难用反证法证明:该字符必是X与Y的任一最长公共子序... 阅读全文
posted @ 2014-09-23 09:20 Awy 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 昨天同学问我一道关于数组分割的问题——有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并是两个子数组的和最接近。 假设2n个整数之和为sum。从2n个整数中找出n个元素的和,有三种可能:大于sum/2,等于sum/2,小于sum/2。可以考虑小于等于... 阅读全文
posted @ 2014-09-21 10:10 Awy 阅读(354) 评论(0) 推荐(0) 编辑
摘要: Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。下面以单词为例,插入、查找和删除实现#define MaxN 26typedef struct TrieN... 阅读全文
posted @ 2014-09-17 23:31 Awy 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 腾讯面试的时候,让写了一个BitMap,以前没怎么写过,不知道如何去写,当时只是知道哪一位置存在置为1,不存在置为0;脑袋一热,竟然... 阅读全文
posted @ 2014-09-17 16:21 Awy 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 正直找工作面试巅峰时期,有幸在学校可以听到July的讲座,在时长将近三个小时的演讲中,发现对于找工作来说,算法数据结构可以算是程序员道路的一个考量吧,毕竟中国学计算机的人太多了,只能使用这些方法来淘汰了,但是说到一点,互联网公司找的是会写代码,有思想的程序员,而不是一些公务员,你招的不是那些搞行... 阅读全文
posted @ 2014-09-03 23:10 Awy 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 最近忙着复习找工作,熟悉了下排序算法,动手写了一下,发现有些问题的边界条件还是没有考虑清楚,不过好在调试成功。不稳定排序:堆排序,快速排序,希尔排序;稳定排序:插入排序,冒泡排序,选择排序,归并排序,基数排序等。插入排序算法代码:void InsertSort(int A[],int n){ ... 阅读全文
posted @ 2014-08-28 18:16 Awy 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 由非等概率Rand生成随机序列题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数Rand(), 使其以1/n的等概率产生1~n之间的任意一个数1、该问题可以先生成一个等概率0、1生成器。由于以p的概率产生0,以1-p的概率产生1,所以00、01、10... 阅读全文
posted @ 2014-08-21 09:47 Awy 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式结构图 访问者模式使用与数据结构相对比较稳定的系统,即数据结构和作用与结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。其目的,要把处理从数... 阅读全文
posted @ 2014-07-16 10:52 Awy 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式需要解决的问题,如果一个特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通... 阅读全文
posted @ 2014-07-15 11:41 Awy 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。#include #include using namespace std;//Flyweight类,它是所有具体享元类的超类或接口,通过这个接口,Flyweight可以接受并作用于外部状态class Flyweight{pub... 阅读全文
posted @ 2014-07-15 10:03 Awy 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 中介者模式(Mediator),用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。 Colleague叫做抽象同事类,而ConcreteColleague是具体同事类,每个具体同事只知道自己的行为,而不了解其他同事类的情... 阅读全文
posted @ 2014-07-14 00:43 Awy 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 职责链模式(Chain of Responsibility),使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。#include using namespace std;//Handler类,定义一个处理请... 阅读全文
posted @ 2014-07-13 21:22 Awy 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。#include using namespace std;//Receiver类,知道如何实施与执行一个与请求相关的操作,任何类都可能作为一... 阅读全文
posted @ 2014-07-11 21:08 Awy 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 桥接模式(Bridge),将抽象部分与它的实现部分分离,使他们都可以独立地变化。 什么是抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立... 阅读全文
posted @ 2014-07-11 15:52 Awy 阅读(267) 评论(0) 推荐(0) 编辑
摘要: Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.思路:这道题主要是找出重叠结点和相同斜率之和。此时我们要判断有斜率和无斜率个数,并判断那个数量比较大,... 阅读全文
posted @ 2014-07-10 23:34 Awy 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Validate if a given string is numeric.Some examples:"0"=>true" 0.1 "=>true"abc"=>false"1 a"=>false"2e10"=>trueNote:It is intended for the problem stat... 阅读全文
posted @ 2014-07-10 23:03 Awy 阅读(321) 评论(0) 推荐(0) 编辑
摘要: Implement wildcard pattern matching with support for '?' and '*'.'?' Matches any single character.'*' Matches any sequence of characters (including th... 阅读全文
posted @ 2014-07-09 14:40 Awy 阅读(191) 评论(0) 推荐(0) 编辑
摘要: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:getandset.get(key)- Get the valu... 阅读全文
posted @ 2014-07-09 13:36 Awy 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能访问你实例化多个对象。一个最好的办法,让类自身负责保存它的唯一的实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。#include... 阅读全文
posted @ 2014-07-09 11:54 Awy 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,或者你需要对聚集有多种方式遍历时,你就应该考虑用迭代器模式,为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一接口... 阅读全文
posted @ 2014-07-09 10:15 Awy 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'.A region is captured by flipping all 'O's into 'X's in that surrounded ... 阅读全文
posted @ 2014-07-08 10:25 Awy 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Cl... 阅读全文
posted @ 2014-07-08 09:13 Awy 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。#include #include #include using namespace std;//Component为组合中的对象声明接口,在适当情况下,实现所有... 阅读全文
posted @ 2014-07-07 13:02 Awy 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需... 阅读全文
posted @ 2014-07-07 00:12 Awy 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Given an array of words and a length L, format the text such that each line has exactly L characters and is fully (left and right) justified.You shoul... 阅读全文
posted @ 2014-07-06 17:29 Awy 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below a... 阅读全文
posted @ 2014-07-06 13:09 Awy 阅读(178) 评论(0) 推荐(0) 编辑