04 2017 档案

lintcode二进制和位运算
摘要:由于python的整形位数和平台有关,而且有自动提升的机制,所以不适合做这类题目。 这篇随笔中大部分题目都是用java实现的,感觉自己java常用的方法还是不熟悉。 365.二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入是字符串的话,py还是有优势的。 408.二进制中有多少 阅读全文

posted @ 2017-04-22 16:56 一个后端狗 阅读(608) 评论(0) 推荐(0)

系统设计5:Google三剑客
摘要:补充材料: 三剑客: http://blog.csdn.net/koder2009/article/details/3964878 http://blog.csdn.net/koder2009/article/details/3985329 http://blog.csdn.net/koder200 阅读全文

posted @ 2017-04-19 22:37 一个后端狗 阅读(1412) 评论(0) 推荐(0)

lintcode亚麻九题
摘要:628.maximum-subtree Given a binary tree, find the subtree with maximum sum. Return the root of the subtree. 思路很简单,分治就可以 627.Longest Palindrome Given a 阅读全文

posted @ 2017-04-19 16:55 一个后端狗 阅读(2433) 评论(0) 推荐(0)

设计模式17:单例模式
摘要:单例模式就是说系统中对于某类的只能有一个对象,不可能出来第二个。 static修饰的方法,不能再用abstract修饰,也不能Override。这是因为static方法是属于类的,不会被继承。 最基本的单例模式不是线程安全的,当有多个线程同时getInstance时,有可能实例化了多个对象。 下面比 阅读全文

posted @ 2017-04-16 20:29 一个后端狗 阅读(212) 评论(0) 推荐(0)

设计模式16:迭代器模式
摘要:泛型相关请参考:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html uml: Aggregate及其子类: Iterator及其子类: Demo: 阅读全文

posted @ 2017-04-16 19:18 一个后端狗 阅读(165) 评论(0) 推荐(0)

设计模式15:组合模式
摘要:组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 透明方式与安全方式: 透明方式: 父类包含所有子类的方法,不需要该方法的 阅读全文

posted @ 2017-04-16 16:28 一个后端狗 阅读(884) 评论(0) 推荐(0)

设计模式14:备忘录模式
摘要:备忘录模式适用于功能比较复杂的,但需要维护或者记录属性的类,对象可以根据备忘录回滚到上一状态。 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。 客户不与备忘录类耦合,与备忘录管理类耦合。 uml: 代码: 阅读全文

posted @ 2017-04-16 15:43 一个后端狗 阅读(224) 评论(0) 推荐(0)

系统设计4:Web服务和流量限制
摘要:阅读材料: HTTP-Session: http://www.cnblogs.com/tankxiao/archive/2012/02/13/2342672.html http://www.cnblogs.com/xueyuwyz/p/3593739.html 日志: http://dataunio 阅读全文

posted @ 2017-04-16 14:40 一个后端狗 阅读(734) 评论(0) 推荐(0)

hadoop相关命令
该文被密码保护。

posted @ 2017-04-14 14:44 一个后端狗 阅读(1) 评论(0) 推荐(0)

eclipse hadoop插件不显示
摘要:这两天在配置eclipse连接到hadoop集群,配置攻略: http://www.cnblogs.com/wenhaizhang/p/5345094.html eclipse下插件不显示的解决办法: http://blog.csdn.net/davidhsing/article/details/5 阅读全文

posted @ 2017-04-14 11:18 一个后端狗 阅读(2889) 评论(0) 推荐(0)

设计模式13:适配器模式
摘要:适配器模式将一个类的接口转换为客户希望的另外一个接口。Adapter使得那些由于接口不一致而无法一起工作的类有了一起工作的机会。 双方都不太容易修改时,再用适配器。 适当的考虑是否应该使用适配器和重构。 uml 代码: 父类: 待适配的类: DEMO 阅读全文

posted @ 2017-04-13 15:57 一个后端狗 阅读(122) 评论(0) 推荐(0)

设计模式12:状态模式
摘要:状态模式解决的是控制一个对象状态转移的表达式过于复杂的情况,把状态的判断逻辑转移表示到不同状态的一系列类中,可以把复杂的逻辑简化。 状态模式的好处是将特定状态的行为局部化,从而将不同状态的行为分割开来。 将特定状态的行为都放入一个对象中,由于与状态有关的代码都存在在具体的对象类中,因此定义新的子类可 阅读全文

posted @ 2017-04-13 11:24 一个后端狗 阅读(262) 评论(0) 推荐(0)

设计模式11:抽象工厂模式
摘要:阅读材料:http://baike.xsoftlab.net/view/209.html#3_2 抽象工程模式解决的问题: 当前有一套产品,称为A;另一套产品称为B。客户端代码需要在两套产品中切换。 抽象工厂模式相当于在简单工厂模式之上又抽象了一层,使得客户端代码在两套产品切换中比较方便。 但是抽象 阅读全文

posted @ 2017-04-12 20:09 一个后端狗 阅读(235) 评论(0) 推荐(0)

设计模式10:观察者模式
摘要:观察者模式所做的事情就是在解耦合,让耦合的双方都依赖于抽象,而不是依赖于具体。 这样各自的变化不会影响另一边的变化。 uml: 代码: 通知者: 观察者: DEMO: 阅读全文

posted @ 2017-04-12 16:57 一个后端狗 阅读(157) 评论(0) 推荐(0)

系统设计3:网络爬虫和短链接
摘要:补充材料: Web相关: https://www.zhihu.com/question/22689579 爬虫: https://www.zhihu.com/question/20899988 http://www-rohan.sdsu.edu/~gawron/python_for_ss/cours 阅读全文

posted @ 2017-04-12 16:02 一个后端狗 阅读(583) 评论(0) 推荐(0)

设计模式9:建造者模式
摘要:建造者模式用来将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。 UML图: 阅读全文

posted @ 2017-04-10 19:30 一个后端狗 阅读(199) 评论(0) 推荐(0)

系统设计2:数据库设计
摘要:阅读材料: unique key https://en.wikipedia.org/wiki/Unique_key#Defining_primary_keys 增删改查 https://en.wikipedia.org/wiki/Create,_read,_update_and_delete 如何存 阅读全文

posted @ 2017-04-09 16:06 一个后端狗 阅读(699) 评论(0) 推荐(0)

设计模式8:外观模式
摘要:外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 使用: 1、客户 阅读全文

posted @ 2017-04-09 11:53 一个后端狗 阅读(198) 评论(0) 推荐(0)

系统设计1:概述
摘要:阅读材料: https://www.zhihu.com/question/20059632 https://www.zhihu.com/question/23602133 https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstud 阅读全文

posted @ 2017-04-08 16:55 一个后端狗 阅读(469) 评论(0) 推荐(0)

设计模式7:模板方法模式
摘要:有时候,我们需要定义某个方法,这个方法在高层次来看是相同的,但是里面几个具体步骤有可能有些不同。 一种实现方法是父类定义一个虚方法,由多个子类具体实现。但是这样做的话,不变的和可变的行为在子类中是混合在一起的,造成代码的大量重复。 这时候我们需要使用模板方法模式。 模板方法模式:定义一个操作中算法的 阅读全文

posted @ 2017-04-08 11:48 一个后端狗 阅读(279) 评论(0) 推荐(0)

九章算法班ladder题目梳理
摘要:1 - 从strStr谈面试技巧与代码风格 13.字符串查找 如果target在source中,返回起始下标,否则返回-1 要点:该题O(mn)可过,两层循环即可。 17.4.7二刷 17.子集 返回一个整数list的所有子集。 要点:某些地方注意使用[:]做拷贝。 17.4.7二刷 18.带重复元 阅读全文

posted @ 2017-04-06 19:56 一个后端狗 阅读(4345) 评论(0) 推荐(0)

设计模式6:原型模式
摘要:原型模式用于创建重复的对象,同时又能保证性能。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用 阅读全文

posted @ 2017-04-06 19:47 一个后端狗 阅读(382) 评论(0) 推荐(0)

设计模式5:工厂方法模式
摘要:在之前提到的简单方法模式中,如果需要给计算器添加一种运算,需要增加一个Operation子类,然后修改工厂类。 这样的设计一方面简化了客户端的修改,另一方面需要修改工厂类,这是违反开放-封闭模式的。 处理这种问题的另一种方法是工厂方法模式。 工厂方法模式克服了违反开放-封闭的缺点,同时保持了封装对象 阅读全文

posted @ 2017-04-05 22:26 一个后端狗 阅读(280) 评论(0) 推荐(0)

设计模式4:代理模式
摘要:当客户端代码直接访问对象存在某些问题时,我们会考虑在对象和客户端代码之间加一个访问层,也就是代理模式。 代理模式为其他对象提供一种代理以控制对这个对象的访问。 来看UML图: 代理类与真实类共同实现了相同的接口,这样做可以控制特定方法的输入输出一致。 代理类包含了真实类作为其成员变量。 来看代码: 阅读全文

posted @ 2017-04-05 21:22 一个后端狗 阅读(142) 评论(0) 推荐(0)

设计模式3:装饰模式
摘要:这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子 阅读全文

posted @ 2017-04-05 21:11 一个后端狗 阅读(189) 评论(0) 推荐(0)

导航