自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yuwen's Hero

专注面试题, 博客 http://blog.csdn.net/beiyeqingteng 的镜像站

原创 Remove Duplicate Letters

Given a string which contains only lowercase letters, remove duplicate letters so that every letter appear once and only once. You must make sure you...

2016-02-02 01:00:46 1432 0

原创 Longest Increasing Path in a Matrix

Given an integer matrix, find the length of the longest increasing path. From each cell, you can either move to four directions: left, right, up o...

2016-01-31 00:26:08 1267 1

转载 工厂三兄弟之抽象工厂模式

抽象工厂模式概述 抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品。抽象工厂模式定义如下:        抽象工厂模式(Abstract Factory Pattern)...

2015-11-06 11:25:35 1801 0

转载 工厂三兄弟之工厂方法模式

工厂方法模式概述 在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。...

2015-11-06 10:52:44 812 0

转载 工厂三兄弟之简单工厂模式

简单工厂模式概述 简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下: 首先将需要创建的各种不同对象(例如各种不同的Chart对象)的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公...

2015-11-06 10:26:44 749 0

转载 创建对象与使用对象——谈谈工厂的作用

与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。对象本身的职责比较容易理解,就是对象自身所具有的一些数据和行为,可通过一些公开的方法来实现它的职责。在本文中,我们将简单讨论一下对象的创建职责和使用职责。 在Java语言中,我们通常有以下几种创...

2015-11-06 07:10:40 1095 0

转载 深入浅出UML类图

类与类之间的关系 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式。 1. 关联关系 关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、...

2015-11-06 01:06:25 572 1

转载 java多线程之死锁

1. Java中导致死锁的原因 Java中死锁最简单的情况是,一个线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请获得锁L1,因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了。导致了死锁。这是最容易理解也是最简单的死锁的形式。但是实际环境中的死锁往往比这...

2015-11-05 02:35:30 528 0

原创 JAVA多线程之常用方法

在多线程编程中,经常会使用到如下方法: 1. public final void wait()  throws InterruptedException,IllegalMonitorStateException 该方法用来将当前线程置入休眠状态,直到接到通知或被中断为止。在调用wait()之前,...

2015-11-04 03:44:06 746 1

转载 How Volatile in Java works? Example of volatile keyword in Java

How to use Volatile keyword in Java What is volatile variable in Java and when to use Volatile variable in Java is famous multi-threading intervie...

2015-11-03 11:50:55 1106 0

原创 java多线程之happens-before

1、背景问题 在讲happens-before之前,先引入一个例子: 假定我们有已经被初始化的变量: int counter = 0; 这个 counter 变量被两个线程所共有,也就是说线程A和线程B都可以获取或者更改counter的值。 这里我们假设线程A要增加counter的值: count...

2015-11-03 11:24:19 2125 0

原创 Java多线程之内存可见性

1、什么是JAVA 内存模型 Java Memory Model (JAVA 内存模型)描述线程之间如何通过内存(memory)来进行交互。 具体说来, JVM中存在一个主存区(Main Memory或Java Heap Memory),对于所有线程进行共享,而每个线程又有自己的工作内存(Work...

2015-11-03 02:47:55 12145 12

转载 多线程之指令重排序

1、首先为何要指令重排序(instruction reordering)? 编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。 也就是说,对于下面两条语句: int a = 10; int b = 20; 在计算机执行上面两句话的时候,有可能第二条语句会先于第一条语...

2015-11-02 08:00:05 11704 3

转载 线程的创建

什么是进程和线程? A process is an executing instance of an application. For example, when you double-click the Microsoft Word icon, you start a process th...

2015-11-01 11:25:32 419 0

原创 java中如何中断thread

要中断thread的执行,我们有多种方式,有些方式是推荐的,有些方式是不推荐的,甚至是错误的。 1. 可否用interrupt()方法来中断thread? 为了回答这个问题,我们首先来看一个例子: class MyThread implements Runnable { publ...

2015-11-01 07:17:33 2316 0

原创 生产者消费者问题源程序

问题描述: 生产者消费者问题(Producer-consumer problem)是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费...

2015-11-01 04:18:18 1624 0

原创 不使用栈把二叉树中序输出

问题: 把一个二叉树中序输出,但是不能使用栈或者O(n)空间来实现。 分析: 把二叉树中序输出,我们可以使用递归或者采用非递归方式,但是不管是哪种方式,我们总是需要O(n)的空间,所以如果只能使用常数空间,的确很难想到,但是一旦掌握该种方法,还是挺有用的,至少拓宽了自己解决问题的思路...

2015-08-13 00:12:40 549 0

原创 数据表链接

问题: 假如有一个表 ACCOUNT ACCOUNTID, NAME, TYPE A001, JOHN, TUTOR A002, MIKE, TUTOR A003, JIM, STUDENT A004, LILY, STUDENT 另一个表 APPOINTMENT STUDENTID, TUT...

2014-01-19 15:09:38 769 0

原创 quickly find the median of a sequence of numbers

Question: Assume the user can enter a large sequence of integer numbers, please return the median of the entered numbers. Idea:  Create an min-hea...

2013-11-02 06:37:58 891 0

原创 Gas Station

There are N gas stations along a circular route, where the amount of gas at station i is gas[i].  You have a car with an unlimited gas tank and it ...

2013-10-13 11:53:16 731 0

原创 determine S is a subsequence of T

Question: You're given a large string T, and a stream of smaller string S1, S2, S3 ... Determine whether Si is a subsequence of T.  |T| |S...

2013-10-10 11:37:56 985 0

原创 insert into table from another table without duplicate

Table src: CREATE TABLE `src` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL ) Table dest: CREATE TABLE `d...

2013-10-08 02:18:52 664 0

转载 How to find duplicate rows with SQL

How to find duplicate rows with SQL This article shows how to find duplicated rows in a database table. This is a very common beginner question....

2013-10-08 01:10:05 1182 0

转载 组合模式

组合模式概述       对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容器对象和叶子对象在功能上的区别,在使用这些对...

2013-04-23 01:22:19 1229 0

转载 外观模式

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。   1. 外观模式概述       不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自...

2013-04-23 00:13:53 1620 1

原创 输出个数最多的连续的字符

问题: 给定一个字符串,输出个数最多的连续的字符(不含空格)。 比如: "this is a sentence" => [t, h, i, s, i, s, a, s, e, n, t, e, n, c, e] "thiis iss a sennte...

2013-04-22 13:01:32 954 0

转载 迭代器模式

迭代器模式(Iterator Pattern) :提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示。 迭代器模式包含如下角色: Iterator: 抽象迭代器ConcreteIterator: 具体迭代器Aggregate: 抽象聚合类ConcreteAggre...

2013-04-20 00:35:43 597 0

转载 面向对象设计原则之依赖倒转原则

如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。依赖倒转原则是Robert C. Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的...

2013-04-17 04:18:01 746 0

转载 设计模式六大原则:里氏替换原则

里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序...

2013-04-14 05:37:54 1098 0

转载 设计模式中类的关系

在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。 1. 依赖(Dependence)          依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖...

2013-04-13 04:54:06 578 0

转载 Reservoir Sampling

Reservoir sampling is a family of randomized algorithms for randomly choosing k samples from a list of n items, where n is either a very large or unk...

2013-04-06 03:32:46 1058 0

转载 双层 not exist 嵌套

关系模式: 学生(学号,姓名,系别,年龄) 课程(课程号,课程名,学时) 选读(学号,课程号,成绩) 问题:检索选读全部课程的学生姓名 select 学生.姓名 from 学生 where not exists( select * from 课程 where not exists( select...

2013-04-06 03:27:30 2783 0

原创 Counting sort

The running time of counting sort  is O(n), and usually, the running time of sorting algorithms will be either O(n^2) or O(n lgn), the reason why cou...

2013-03-27 07:12:04 618 0

原创 Trie + recursion + pruning to implement Boggle

If you want to know what Boggle is, please wiki or google it. Or refer to http://goo.gl/GythQ  In this implementation, we need to use a dictionary. ...

2013-03-18 04:00:10 1327 0

原创 数组中找出第k大的值

最简单的办法,就是先排序,然后把第K个值找出来,这样算法的复杂度为 O(nlgn). 其实还有一种更简单的方法,其平均复杂度 为 O(lgn),当然,最坏是 O(n^2). 这种算法就是利用了 quicksort 和二分查找 的做法。先把数组分成两个部分,左边一个部分比pivot小,另一边比pi...

2013-03-13 23:48:31 1121 0

原创 快速找出2到n所有的素数

public static ArrayList primeNumbers(int n) { if (n < 2) return null; ArrayList list = new ArrayList(); boolean[] prime = new boolean[n + 1]...

2013-03-11 12:29:40 1904 0

原创 rotate matrix

Given an image represented by a matrix, write a method to rotate the image by 90 degrees. Can you do this in place? static void rotateClockwise(int[...

2013-02-26 12:18:29 1193 0

原创 O变X

给你一个n * n 的二维char数组 内部存的是 'X' 和 'O',形式如下 X  X  X  X  X X  O  O  O  X X  X  O  O  X X  X  X  O  X X  O  X  X  X 编写一个函数将被...

2013-02-24 12:45:11 677 0

原创 Group of 1s in a Matrix

Given a matrix with 1s and 0s, please find the number of groups of 1s. A group is defined by horizontally or vertically adjacent 1s. For example, the...

2013-02-24 04:48:33 473 0

原创 Sum of a tree

You are given a tree, and the nodes in the tree may have more than two child nodes, calculate the sum of the tree where the root to the leaf is consi...

2013-02-22 07:40:36 470 0

提示
确定要删除当前文章?
取消 删除