上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 51 下一页
2014年4月23日
摘要: 2014-04-23 18:42题目:设计一个在线阅读系统的数据结构。解法:这题目太大了,我的个亲娘。显然你不可能一次加载一整本书,做到单页纸加载的粒度是很必要的。为了读书的连贯效果,预取个几页也很必要。代码: 1 // 8.5 Deign a class for an online book re... 阅读全文
posted @ 2014-04-23 19:11 zhuli19901106 阅读(197) 评论(0) 推荐(0)
摘要: 2014-04-23 18:17题目:设计一个停车位的类。解法:停车位,就要有停车、取车的功能了。另外我还加了一个工作线程用于计费,每秒给那些有车的车位加1块钱费用。代码: 1 // 8.4 Design a class to simulate the parking lot. 2 #include... 阅读全文
posted @ 2014-04-23 18:41 zhuli19901106 阅读(445) 评论(0) 推荐(0)
摘要: 2014-04-23 18:10题目:设计一个点唱机。解法:英文叫Musical Jukebox。这是点唱机么?卡拉OK么?这种题目实在是云里雾里,又没有交流的余地,我索性用一个vector来表示一首曲子吧。不过有一点是肯定的,点播行为和播放行为应该分不同线程操作,这样就不至于让机器一直卡在那儿等你... 阅读全文
posted @ 2014-04-23 18:17 zhuli19901106 阅读(289) 评论(0) 推荐(0)
摘要: 2014-04-23 17:45题目:假设有个呼叫中心,有接线员、经理、主管三种角色。如果接线员无法处理呼叫,就上传给经理;如果仍无法处理,则上传给主管。请用代码描述这一过程。解法:第一眼觉得这题肯定是在考察设计模式,很像exception的throw过程。对于我这种对设计模式一窍不通的人,这题还无... 阅读全文
posted @ 2014-04-23 18:09 zhuli19901106 阅读(288) 评论(0) 推荐(0)
摘要: 2014-04-23 17:32题目:请设计一个数据结构来模拟一副牌,你要如何用这副牌玩21点呢?解法:说实话,扑克牌的花样在于各种花色、顺子、连对、三带一、炸弹等等,如果能设计一个数据结构,让判断这些特征的代码变得很好写,那就能满足题意要求了。我只是勉强实现了几个基本功能,包括抽牌、洗牌、切牌,用... 阅读全文
posted @ 2014-04-23 17:44 zhuli19901106 阅读(383) 评论(0) 推荐(1)
2014年3月21日
摘要: 2014-03-21 22:23题目:假设你一开始有一个空数组,你在读入一些整数并将其插入到数组中,保证插入之后数组一直按升序排列。在读入的过程中,你还可以进行一种操作:查询某个值val是否存在于数组中,并给出这个元素在数组中的位置(如果有多个的重复元素话,给出最小的下标)。解法:书上的原题不是这么描述的,但我觉得用这种插入排序的说法更好理解。虽然说是数组,但实际上既可以用真的数组来模拟这一过程,也可以用一棵二叉搜索树来做。我的实现是用二叉搜索树,每个节点里除了记录元素的值之外,还记录它的左子树有多少个点。这样在树里面也能进行对数级的查找。其实,用数组直接模拟的话,代码应该更好写的。代码: 1 阅读全文
posted @ 2014-03-21 22:38 zhuli19901106 阅读(254) 评论(0) 推荐(0)
摘要: 2014-03-21 22:05题目:给你N个盒子堆成一座塔,要求下面盒子的长和宽都要严格大于上面的。问最多能堆多少个盒子?解法1:O(n^2)的动态规划解决。其实是最长递增子序列问题,所以也可以用O(n * log(n))的优化算法。代码:// 11.7 n boxes are to stack up to a tower. Every box must be strictly smaller in width and height than the one right below it.// How many boxes at most can you stack up?#include 阅读全文
posted @ 2014-03-21 22:18 zhuli19901106 阅读(227) 评论(0) 推荐(0)
摘要: 2014-03-21 21:50题目:给定一个MxN的二位数组,如果每一行每一列都是升序排列(不代表全展开成一个一维数组仍是升序排列的)。请设计一个算法在其中查找元素。解法:对于这么一个数组,有两点是确定的:1. 左上最小,右下最大;2. 左边不大于右边,上边不大于下边。根据这么个思路,你可以从左下或者右上开始查找,应该向左走向右走,还是向上走向下走,你懂的。用这种方法,可以在线性的时间内找出一个元素。代码: 1 // 11.6 Given an MxN matrix, each row and each column is sorted in ascending order. 2 // Fo 阅读全文
posted @ 2014-03-21 21:58 zhuli19901106 阅读(225) 评论(0) 推荐(0)
摘要: 2014-03-21 21:37题目:给定一个字符串数组,但是其中夹杂了很多空串“”,不如{“Hello”, “”, “World”, “”, “”, “”, “Zoo”, “”}请设计一个算法在其中查找字符串。解法:要么一次性将其中夹杂的空串去掉,要么在二分查找的过程中逐个跳过空串。反正整体思路仍是二分。代码: 1 // 11.5 Given an array of strings interspersed with empty string ""s. Find out if a target string exists in the string. 2 #include 阅读全文
posted @ 2014-03-21 21:45 zhuli19901106 阅读(194) 评论(0) 推荐(0)
摘要: 2014-03-21 21:28题目:给定一个20GB大小的文本文件,每一行都是一个字符串。请设计方法将这个文件里的字符串排序。解法:请看下面的注释。代码: 1 // 11.4 Given a file of 20GB containing strings, one word each line. How would you sort them all? 2 // Answer: 3 // 1. Split them into 200M pieces. 4 // 2. For each pieces, use comparison sort or hashing to sort i... 阅读全文
posted @ 2014-03-21 21:37 zhuli19901106 阅读(175) 评论(0) 推荐(0)
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 51 下一页