- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 [LeetCode] 113. Path Sum II
题目:Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.For example:Given the below binary tree and sum = 22, 5
2016-08-27 20:46:49
435
原创 [LeetCode] 260. Single Number III
题目:Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it wi
2016-08-27 19:34:30
507
原创 [LeetCode] 268. Missing Number
题目:Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.For example,Given nums = [0, 1, 3] return 2.Note:Your algorith
2016-08-27 18:35:10
379
原创 [LeetCode] 289. Game of Life
题目:Given a board with m by n cells, each cell has an initial state live (1) or dead (0). Each cell interacts with its eight neighbors (horizontal, vertical, diagonal) using the following four ru
2016-08-27 18:17:51
460
原创 [LeetCode] 236. Lowest Common Ancestor of a Binary Tree
题目:Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between
2016-08-27 17:50:03
422
原创 [LeetCode] 235. Lowest Common Ancestor of a Binary Search Tree
题目:Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is def
2016-08-27 17:03:16
402
原创 设计模式——模板方法(2)
上篇大概介绍了模板方法,那么在现实开发中模板方法大概有哪些应用呢?实际上这个模式是我个人最喜欢的模式之一,它可以说是大部分框架的重要基石,最近我在看spring mvc的源码,所以就那里面的一个使用来做例子吧:import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletIni
2016-03-16 21:25:21
267
原创 设计模式——模板方法(1)
模板方法适用于流程固定,具体步骤的实现确实变化的场景。举个例子,当你去游泳的时候你会经历换衣服 -> 热身->游泳这个流程是固定的,然而当具体到游泳的时候就千差万别了,你用蛙泳,仰泳,自由泳,蝶泳或者各种千奇百怪的姿势。模板方法在这个时候就有用武之地了。先来看一下模板方法的UML:拿刚刚游泳为例来设计我们的类:public abstract class Swimmer {
2015-09-19 00:22:05
297
原创 设计模式——代理模式(2)
代理模式的一个使用是RMI(Remote Method Invocation)。当远程调用一个对象的方法时,我们需要编写一些处理networking,I/O之类的代码。这个时候我们只需要用一个代理来专门处理这些非业务相关的逻辑就好了。而RMI就帮我们做了这些事情,不需要我们自己再创建代理。下面是例子:1. 下面是一个接口和它的实现public interface M
2015-09-18 22:13:10
253
原创 设计模式——代理模式(1)
代理模式的主要目的是用来控制对对象的访问。用户不直接操作对象,而是通过代理来访问对象,这样代理可以在对象被访问的时候执行一些逻辑,过滤不合理的请求。下面是代理模式的UML 所以这其实是一个非常简单的模式,下面上一个简单的例子:interface SomeBean { void doSomething(String something) throws Exception;}class So
2015-09-17 22:10:30
333
原创 Java——内部类
我们在写Java程序的时候或多或少都会用到内部类,比如说在多线程编程的时候我们常常会写如下代码:Runnable task = new Runnable() {@Overridepublic void run() {// Blablabla}};
2015-03-25 20:50:39
327
原创 Java多线程——Fork/Join框架
使用多线程技术,让不同的任务在不同的线程中运行,可以提高CPU的利用率。然而只是仅仅通过任务来划分,粒度还是有点大。当任务中有些任务运行所占时间远远大于其它任务的时候,使用多线程并发所带来的效果并不明显。在这种情况下把耗时长的大任务划分为耗时短的小任务,可以有效地缓解并发的瓶颈,最终把小任务的结果合并获取完整的任务的结果。Fork/Join就可以很好地实现这种划分任务最后合并的思路(你可以把它当做
2015-03-18 22:46:26
613
原创 Java多线程——线程池
一、ThreadPoolExecutor接口之前提到过Executors所提供的四种线程池,即:Scheduled,Single,Fixed,Cached。如果这几种线程池不能完全满足你的需求,那么通过ThreadPoolExecutor你也可以创建并且定制合适的线程池。ThreadPoolExecutor常用的构造函数:public ThreadPoolExecutor (i
2015-03-15 10:59:39
474
原创 Java多线程——Executor框架
一、显示地创建线程Java中显示地创建一个线程,只需要创建Thread(或者其子类,或者实现了Runnable的类)的实例即可。通过调用start()方法就可以启动该线程。例子:Thread thread = new Thread(task){ @Override public void run() { // Blablabal }};thread.start();
2015-03-14 18:24:12
468
转载 Linux——配置Samba
以前我们在windows上共享文件的话,只需右击要共享的文件夹然后选择共享相关的选项设置即可。然而如何实现windows和linux的文件共享呢?这就涉及到了samba服务了,这个软件配置起来也不难,使用也非常简单。 【samba配置文件smb.conf】一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS):“yum inst
2015-03-12 20:59:29
340
原创 Java多线程——并发容器简介
这里主要是简单介绍几种比较常见的并发容器,目的是梳理一下。由于每一个类的底层实现都是非常复杂的,用到了很多精妙的多线程的技巧,限于篇幅和水平,就不做深入的探讨。纸上得来终觉浅,只有多加实践,多看源码,才能深入理解它们。一、ConcurrentHashMap提供高并发性的线程安全的HashMap,实现了的HashMap的功能,并且实现了接口ConcurrentMap所定义的原子的pu
2015-03-11 21:25:58
1731
原创 Java多线程——高级同步机制
内置锁和显式锁是两种比较基本的同步方式,除此之外,Java还提供了一些高级的同步工具:1. Semaphores2. CountDownLatch3. CyclicBarrier4. Phaser5. Exchanger一、控制资源访问:Semaphores (信号量).当一个线程试图访问共享的资源时,它首先要获取许可。如果内部的信号量计数器是大于0的话,
2015-03-09 12:27:09
1185
原创 Java多线程——竞态条件与原子性
一、 竞态条件(Race Condition)在多线程的环境下,程序输出的结果会受到线程执行顺序的影响的现象叫做竞态条件。举个例子:class Counter { private int count = 0; /** * @return the count */ public int getCount() { return count; } public vo
2015-03-09 10:01:47
686
原创 Java多线程——加锁机制
Java的锁分为内置锁和显式锁。内置锁在我们平时使用synchronized关键字的时候获取。显式锁则是通过获取java.util.concurrent.locks包下面的ReentrantLock类或者ReentrantReadWriteLock类的实例来获取的。
2015-03-08 19:54:32
3382
原创 2014年总结
入职甲骨文半年有余,有了很多想法,写下来做一个总结。2014年总结:当初加入甲骨文EBS Team的时候觉得这是一个清闲的地方,还可以安安心心弄点自己的小九九。然,天有不测风云,人有旦夕祸福,7月中旬的一个上午,当我打开邮箱的时候,我吃了一惊。经理发邮件给我说我被分到了Fusion Financials(FF) Team。虽然说在EBS才呆了一个多星期,没有太多的不舍,但这个决定也
2015-02-07 12:55:09
472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人