会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
救赎之道就在其中
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2016年8月20日
二叉树权值最大的叶子节点到权值最小的叶子节点的距离
摘要: 有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。 给定二叉树的根节点root,请返回所求距离。 真是醉了,看漏了叶子节点。 代码:
阅读全文
posted @ 2016-08-20 21:30 DavieTiming
阅读(1648)
评论(0)
推荐(0)
2016年8月19日
命令模式-适配器模式-外观模式-模板方法模式-迭代器模式-组合模式-状态模式-代理模式
摘要: 命令模式:把一系列的操作封装成一个命令 代码: 可以用于命令的队列,也可以用于日志请求(比如自动记录每一步的操作,方便撤销或者日后重复)。 设计思想:用一个接口封装算法实现,最后向上转型对各种不同的算法实现一视同仁(都调用execute方法)。 适配器模式: 不需要代码了,一句话就是两个接口不兼容,
阅读全文
posted @ 2016-08-19 10:34 DavieTiming
阅读(451)
评论(0)
推荐(0)
2016年8月18日
策略模式-观察者模式-装饰者模式-工厂模式-单例模式
摘要: 算是最近学设计模式(HEAD FIRST设计模式)的一个总结吧,力求用最精简的代码说明其设计本质。 第一个模式:策略模式 代码: 说明:汽车都需要加油,但是不同汽车加不同的油,通过让汽车持有一个具体实现加油算法的对象(通常向上转型为其接口),在汽车加油的时候直接调用这个接口,让其自己实现这种汽车加油
阅读全文
posted @ 2016-08-18 21:19 DavieTiming
阅读(2156)
评论(0)
推荐(0)
2016年8月11日
mac下 tomcat8+jdk1.8+servlet+Spring环境搭建中的问题
摘要: 1,jdk1.8里面自带了servlet-api.jar tomcat里面也有这个,会导致冲突发生。出现这个问题会在控制台输出一大堆警告和错误,我一个一个去查(有的错误是表象不是核心)最后在stackoverflow里面一个印度人的回答里面了解了这个问题。 2,server里面的web.xml打开s
阅读全文
posted @ 2016-08-11 21:07 DavieTiming
阅读(591)
评论(0)
推荐(0)
2016年8月4日
删除部分字符使其变成回文串问题——最长公共子序列(LCS)问题
摘要: 先要搞明白:最长公共子串和最长公共子序列的区别。 最长公共子串(Longest Common Substirng):连续 最长公共子序列(Longest Common Subsequence,LCS):不必连续 实在是汗颜,网上做一道题半天没进展: 给定一个字符串s,你可以从中删除一些字符,使得剩下
阅读全文
posted @ 2016-08-04 23:44 DavieTiming
阅读(7320)
评论(0)
推荐(0)
2016年7月28日
JAVA锁的膨胀过程和优化
摘要: 首先说一下锁的优化策略。 1,自旋锁 自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试。也就是不停循环看是否能等到上个线程自己释放锁。这个问题是基于一个现实考量的:很多拿了锁的线程会很快释放锁。因为一般敏感的操作不会很多。当然这个是一个不能完全确定
阅读全文
posted @ 2016-07-28 15:17 DavieTiming
阅读(10918)
评论(2)
推荐(6)
2016年7月25日
单例模式
摘要: 单例模式可以说是最常见而短小的设计模式,这也让它经常在面试中被问到。 单例模式就是某个类只能生成一个对象。主要应有于某些确实只需要一个对象的情况,比如线程池。 首先第一步当然是使用private修饰构造方法,这样别人地方就不能用new来新建一个对象。然后在代码中添加一个静态方法,这个方法可以返回一个
阅读全文
posted @ 2016-07-25 10:44 DavieTiming
阅读(254)
评论(0)
推荐(0)
简单工厂模式(静态工厂)和工厂方法模式和抽象工厂模式
摘要: 首先是简单工厂模式。 一句话描述就是用一个工厂类去封装new的工厂,返回新建的一个对象的引用。如果这个方法是静态的,就称之为静态工厂。一般来说这种做法很常见,尤其在一些JAVA工具类中。它的好处和坏处网上的分析都很多,但我觉得没必要分的这么细。最最最直接的好处是用起来简单,方便和不容易出错。 工厂方
阅读全文
posted @ 2016-07-25 08:34 DavieTiming
阅读(2775)
评论(0)
推荐(0)
2016年7月18日
从基层容器类看万变不离其宗的JAVA继承体系
摘要: 以容器类为例子,可以观一叶而知秋,看看以前的前辈们是如何处理各种面向对象思想下的继承体系的。读的源代码越多,就越要总结这个继承关系否则读的多也忘得快。 首先摆上一张图片: 看到这张图很多人就慌了,难道这些东西我都要全部学习?其实是也不是,其中的很多东西都很有学习的必要,但是学习的过程绝对不是一行一行
阅读全文
posted @ 2016-07-18 16:23 DavieTiming
阅读(918)
评论(0)
推荐(0)
2016年7月11日
堆排序中的上滤和下滤
摘要: 这两个地方搞了好多次,每次做题的时候都容易忘记,现在把其特点记下来。 首先是下滤,就是把当前节点向下寻找其应该在的位置,它要求当前节点的左右子节点都满足堆的性质。最多的应用在堆排序的过程中:每次把最大堆的第一个节点(最大)和当前排序队列的最后一个元素交换,这样当前最大值就去了该去的地方,再对当前首元
阅读全文
posted @ 2016-07-11 21:26 DavieTiming
阅读(2480)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告