自定义博客皮肤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 的镜像站

  • 博客(14)
  • 收藏
  • 关注

原创 顺时针打印矩阵 (JAVA实现)

问题:给定一个矩阵,从外向内顺时针打印矩阵中的每一个数字。例如:给定矩阵:1    2    3    45    6    7    89    10   11  1213   14   15  16输出应该为:{1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10}分析:问题的本质其实就是打印一

2012-07-28 05:55:42 4973

原创 给你一串股票价格,找出买点和卖点,使得利润最大

问题:Given array of integers representing historic stock prices. Find the buying and selling points to maximize the profit. 给你一个整数数组,数组的值代表股票的历史价格。找到买点和卖点,使得利润最大。假设数组为array = {3, 8, 1, 2, 19, 22, 2,

2012-07-23 10:38:53 2132

原创 求两个排序数组的并集

问题: 给你两个排序的数组,求两个数组的并集。比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么并集就是 1 2 3 4 5 7 8 9.代码:public class Union { public static void main(String[] args) { char[] ch1 = "abcde".toCharArray(); c

2012-07-23 06:37:53 4678

原创 求两个数组的交集

问题: 给你两个排序的数组,求两个数组的交集。 比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么交集就是 3 5.分析:因为数组A B均排过序,所以,我们可以用两个“指针”分别指向两个数组的头部,如果其中一个比另一个小,移动小的那个数组的指针;如果相等,那么那个值是在交集里,保存该值,这时,同时移动两个数组的指针。一直这样操作下去,直到有一个指针已经超过

2012-07-23 06:12:51 911

原创 一道收集优惠券的面试题

问题:一个饭店发行一套优惠券,一套里面总共有 n 张不同的优惠券,顾客每次吃一次,可以随机获得一张优惠券。如果收集齐一套,下次吃饭可以打折。请问:顾客要来多少次才能收集齐一套优惠券?(是不是和小时候吃零食收集刮刮卡的情形是一样的,呵呵)分析:问题的难点在于顾客获得的优惠劵可能会有重复。但是,我们可以换一角度思考。假设顾客第一次来,他一定会得到一张独一无二的优惠券,第二次来的

2012-07-23 06:07:28 2545

原创 名人问题 (Celebrity problem)

问题:在一个房间里有 N 个人,其中一个是名人,所谓名人就是大家都认识他,但是他不认识任何人。其它人可能认识房间里面另外的一部分人。你可以问任何人问题,但是问题只能是:你认识 X 吗,对方回答 Yes or  No. 请问最少要问多少个问题才能把名人找出来?分析:我们把人编号,比如从1 到 N。 我们考虑最坏情况:你问每一个人是否认识 X ,如果大家都认识,那么 X 一定是

2012-07-23 06:06:16 1012

原创 找出字符串中对称的子字符串的最大长度(最长回文)

背景:所谓对称子字符串,就是这个子字符串要么是以其中一个词对称:比如 “aba”, “abcba”;要么就完全对称:比如"abba", "abccba"。问题:给你一个字符串,找出该字符串中对称的子字符串的最大长度。思路:首先,我们用字符数组 char[] array 来保持这个字符串,假设现在已经遍历到第 i 个字符,要找出以该字符为“中心”的最长对称字符串,我们需要用另两个

2012-07-20 23:51:40 3994

原创 判断一个数字是否是回文

问题:给一个数字,判断该数字是否是回文。比如 1221是回文,而123不是。分析:判断一个数字是否是回文,我们可以先把它转成字符串,然后根据回文“对称”的特性进行判断:查看第 x 个字符是否与第 n - x + 1 字符是否相等 (x 从1开始,n/2 结束, n 是指数字长度)。但是,这道题因为是数字,有一种更好的解法。即根据原始数字,通过数学方法构建出它的回文数字,如果原始数字大小

2012-07-20 22:27:33 1056

转载 扩展系统功能——装饰模式

尽管目前房价依旧很高,但还是阻止不了大家对新房的渴望和买房的热情。如果大家买的是毛坯房,无疑还有一项艰巨的任务要面对,那就是装修。对新房进行装修并没有改变房屋用于居住的本质,但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软件设计中,我们也有一种类似新房装修的技术可以对已有对象(新房)的功能进行扩展(装修),以获得更加符合用户需求的对象,使得对象具有更加强大的功能。这种技术对应于一

2012-07-03 07:40:27 3026

转载 请求的链式处理——职责链模式

“一对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初的出牌者可以打出新的牌。在这个过程中,牌作为一个请求沿着一条链在传递,每一位纸牌的玩家都可以处理该请求。在设计模式中,我们也有一种专门用于处理这种请求

2012-07-03 01:58:46 1877

转载 确保对象的唯一性——单例模式

前言:这是一篇我见过的讲单例模式最完整的,也是讲的最好的一篇博客文章。3. 1 单例模式的动机      对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务管理器,如图3-1所示,我们可以做一个这样的尝试,在Windows的“任务栏”的右键弹出菜单上多次点击“启动任务管理器”,看能否打开多个任务管理器窗口?如果你的桌面出现多个

2012-07-02 23:13:33 5938 3

原创 ZigZag打印二叉树

问题:给定二叉树,ZigZag打印每一层的节点,如果上一层是从左到右,下一层就是从右到左。分析:本题和分层打印二叉树是一样的,我们只需要判断上一层的顺序,就可以判断该层的顺序。代码:public static void printZigZag(Node node) { ArrayList list1 = new ArrayList(); ArrayList

2012-07-01 12:06:52 1958

原创 短址(short URL)原理及其实现

前言:最近看了一些关于短址(short URL)方面的一些博客,有些博客说到一些好的东西,但是,也不是很全,所以,这篇博客算是对其它博客的一个总结吧。介绍:短址,顾名思义,就是把长的 URL 转成短的 URL, 现在提供这种服务的有很多公司,我们以google家的 URL shortener 服务: http://goo.gl/ 为例。首先我们到 http://goo.gl

2012-07-01 08:34:12 6542 1

原创 打印二叉树的边缘节点

问题:给你一个complete 二叉树,逆时针打印所有边缘节点, 比如:那么,逆时针打印边缘节点后,输出:1 , 3, 5, 9, 8,  6 .分析:如果想写一个方法实现这个要求是很难的,但是,我们可以考虑分步实现。第一步:打印左边的边缘节点;第二步:打印底部所有节点;第三步:打印右边所有边缘节点。代码如下:public static

2012-07-01 01:01:47 1994

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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