11 2017 档案
摘要:描述 首先看链表结构: 本题目要求把传入两个链表,根据每个元素的val大小,按顺序把两个链表重新组装起来,组装为一个链表。 比如1-3-5-7和2-4-6-8两个链表,组装起来就是1-2-3-4-5-6-7-8 答案描述 先看看我的答案,巨长无比还不好理解,想法是这样的:就是根据两个链表遍历比大小,
阅读全文
摘要:描述 给定一个链表,从列表的最后删除倒数第n个元素 例如: 链表定义: 我的方法 leetcode讨论区的方法
阅读全文
摘要:描述 中介者模式致力于降低多对象信息交互的复杂性,通过提供一个中介类,所有对象的信息都通过这个中介来交互。 使用场景:多类相互耦合,形成网状结构。 实例 一个简单的例子:假设有三个人A、B、C,这三个人共同做一个项目,那么就要相互商讨,假设这三个人互为微信好友,那么当A想表达某些想法时候,就要分别通
阅读全文
摘要:描述 迭代器模式的意义在于模仿迭代器,自己定义一个迭代器,可以像迭代器的工作方式一样,访问一个聚合对象的所有元素。把在元素之间游走的责任交给迭代器,而不是聚合对象。 使用状况:遍历一个聚合对象。 实例 代码来源:特别感谢 w3school java设计模式之迭代器模式
阅读全文
摘要:描述 解释器模式提供了语言的语法或者表达式的评估方式,这种模式提供一个解释特定上下文的接口。 实例 一个很简单的例子,检测一个查询语句,那么必须是“select from”,单独的select和from都是返回false的,都可能是其他语句,这就是and检测;同样的,检测一条更改数据库的语句那可能是
阅读全文
摘要:描述 将请求以命令的格式包裹到对象中,并传给调用对象,调用对象寻找可以处理该命令的合适对象,由该合适对象执行。 实例 菜鸟教程上的一个很简单的例子: 假设有个股票类(Stock),对他存在两种操作:买(buystock)和抛(sellstock),先在股票类中定义两个方法:买方法和抛方法,然后定义一
阅读全文
摘要:描述 责任链模式为请求创建了一个接收者对象链,对象链的工作原理是这样的:当发送者发送一条消息给接收者链时,接收者链首会先得到消息并处理,如果链首没有处理功能,那么就会将消息传递到下一个对象,如果这个对象也处理不了,就继续向下穿,以此类推。 有个很简单的例子:假设程序运行结果有三个层级的消息:erro
阅读全文
摘要:描述 给定一个n个整数的数组S,在S中找到三个整数,使得总和最接近给定数量的目标。返回三个整数的和。你可以假设每个输入都只有一个解决方案。 解决方案 和上次做的三个数和为0那个题很像,所以首先要想到的当然就是给这个无序数组排序,这样能降低之后的匹配过程的复杂度。 我又一次本着先做对后看事件复杂度的态
阅读全文
摘要:描述: 给定一个整形无序数组a,其中元素可重复,在a中找出所有的{a, b, c}满足条件a+b+c=0,且结果不可以重复 思考过程: 在解决这个题时,我一直考虑怎么才能避免重复,因为这是个无序数组,我最先想到的是匹配已有结果,但是这样会超级复杂,解决方法一定不是这样的。那么既然无序的不好办,把它变
阅读全文
摘要:描述 代理模式:一个类代表另一个类的功能 听起来很抽象,举几个简单直观的例子:windows中的快捷方式就是很形象的代理模式;现如今我们都用手机客户端网上买火车票,实际上网上客户端就是一个代理,他没有实际功能,只是负责在乘客和中国铁路局之间交互传递信息,那么这个手机客户端就是个代理,实际上处理业务的
阅读全文
摘要:描述 外观模式很好理解,就是一个复杂的类,把其中所有成员都设置为私有,同时为每个成员写一个公有的操作函数,很经典的就是我们平时写model时把成员变量定义为私有,同时为每个成员变量写get和set方法。 使用场景:当访问者不需要知道内部复杂联系,只需要调用内部功能时时候,常常定义系统入口。 实例 上
阅读全文
摘要:描述 装饰器模式的作用是在不改变现有对象的结构的情况下,对其添加新的功能。这种模式创建了一个装饰类,该装饰类继承原有的类,并包装原有的类。 描述起来很麻烦,下面举个例子: 假设有个形状接口(shape),下面分别创建长方形类(rectangle)和圆形类(circle)都实现形状接口。下面我要给这两
阅读全文
摘要:描述 组合模式,又叫部分整体模式,用于把一组相似的对象按照对象关系组合为一个单一对象,其依据树形结构来组合对象。 光说概念太难理解了,举个例子,有个员工类(Employee),那么一个公司的所有人都可以用这个类的对象来表示,因为不管是首席执行官(CEO)、销售主管(headSales)、营销主管(h
阅读全文
摘要:描述 假设有个人的类Person,有三个属性:name(姓名)、gender(性别)和maritalStatus(婚姻状况),现在用这个类实现10个对象,也就是有10个人,将这10个人放入一个List<Person>中,按照不同的需求筛选出符合情况的,比如选出所有男性,选出所有未婚的,或者选出所有未
阅读全文
摘要:题目 给定n个非负整数a 1,a 2,...,a n,其中每个代表坐标(i,a i)处的一个点。绘制n条垂直线,使得线i的两个端点处于(i,a i)和(i,0)处。找到两条线,它们与x轴一起形成一个容器,使得容器包含最多的水。 注意:你可能不倾斜容器,n至少为2。 实现: 先看我的实现代码: 为了找
阅读全文
摘要:描述 桥接模式是将抽象化与实现化分离,即将对象的定义和实现进行分离,是结构模式的一种。这种类涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 例子 比如我们要画图,我们要画的可能有正方形、矩形、三角形等等,还要给这些形状上色,分别为红色、黑色、蓝色
阅读全文
摘要://我的方法 public String longestCommonPrefix(String[] strs) { //如果字符串数组长度是0,则返回“”,如果数组长度是1,那么直接返回这一条String if(strs.length==0){ return ""; }else if(strs.length==1){ ...
阅读全文
摘要:描述 适配器的理解很简单,举个例子:我们都见过存储卡,一般手机都可以装上存储卡,手机可以对存储卡直接读写,但是如果想用电脑读写存储卡呢?那就需要一个媒介 卡托,把存储卡插在卡托上,卡托上有个USB的数据口,而所有电脑都支持USB口,这样就可以用电脑读写存储卡内容了。卡托这个神器就是一种适配器。适配器
阅读全文
摘要:原型模式是创建类设计模式中最容易理解的一种设计模式,类图如下: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以
阅读全文
摘要:建造者模式是将复杂对象的构建和表示进行分离,让同样的构建过程可以创建出不同的表示。 比如,一个人的类,有三个属性:头、身体和脚。 我们通过建造者模式将构建三个身体部位的动作分离开,那么,对这三个身体部位有任意一个部位构造方法不同,都会表示出不同的人来,这就是所谓的对负责对象的构建和表示进行分离的思想
阅读全文
摘要:工厂模式 工厂模式,我的理解就是对象的生产工厂,能通过一个工厂类,生产多种类的实例对象,也就是说,每当人们想新生成某种类的一个对象时,不通过new来做,而是通过工厂类的一个生产对象的函数来生产出新的对象,我们在创建对象时就不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 如
阅读全文
摘要:设计模式简介: 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式提供了一个标准的术语系统,且具体到
阅读全文
摘要:1 static 静态域与静态方法 java单例模式介绍之前,先介绍一下静态域和静态方法,在单例设计模式中需要用到。先看下面的类: 其中,nextId是静态类型,id不是,那么说明demo每创建一次对象,都会分配一个域给id,每个对象都不一样,但是不管demo创建多少个对象,nextId只有一个域,
阅读全文
摘要:题意: 判断一个整数是否为回文数: 1、负数不是回文数 2、个位数一定是回文数 3、12321、6666、11等类似这样的数是回文数 下面是我写的代码: 思路: 1 首先判断是否是正数 2 判断是否是个位数 3 根据算数特性,逐个提出对应位比较是否相等,一旦有不想等马上返回false,如果执行完成还
阅读全文
摘要:需求: 经常遇到这样的需求:要求每天执行一次任务,执行任务时间是凌晨3点 实现: 为了便于检测,我假设的是下一分钟执行任务,每10秒重复执行。(对应现实项目:每天3点执行任务。那么就是下一个3点执行任务,并每次sleep24小时) TimerManager.java LyzTimerTask.jav
阅读全文
摘要:对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类
阅读全文
摘要:感谢原作者,转发自:http://blog.csdn.net/u014427391/article/details/51419521 以Demo的形式讲诉拦截器的使用 项目结构如图: 需要的jar:有springMVC配置需要的jar和jstl需要的jar SpringMVC包的作用说明: aopa
阅读全文
摘要:一 java实现atoi() * atoi()描述: * 参数str字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, 之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。下面是leetcode社区Discuss版面的两个解决方案: 方案1: 方案2:
阅读全文