编程之美
DreamMakers
凡办大事,以识为主,以才为辅,凡成大事,人谋居半,天意居半。
展开
-
最短摘要的生成
Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法String extractSummary(String description,String[] keywords),目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。这个问题和编程之美3原创 2013-03-23 20:51:26 · 1427 阅读 · 0 评论 -
二分查找在数组中应用的若干实例
在编程之美3.11一节中,我们遇到这么一个问题:找出一个有序(字典序)字符串数组中等于指定字符串的序号,如果有多个元素存在,则返回其中序号最大的。对于这个问题,我们首先从非降序整形数组来看看如何实现,二分查找的思想很简单,就是不断判断数组中中间位置的元素与关键元素的大小关系,从而确定是在数组的左半部分继续查找还是在数组的右半部分继续查找。下面是Java实现二分查找的代码:package原创 2013-03-24 10:05:28 · 1486 阅读 · 0 评论 -
从1到n的整数中1出现的次数
在和上都有这么一道题目,那就是求从1到n的整数中1出现的次数。这两本书中都给出了两种算法,本人觉得上的算法更胜一筹。现将两种算法实现如下。方法1:一个直观的方法就是遍历从1到n的每一个整数,利用一个子函数求出一个整数中所含1的个数,然后将所有整数中包含1的次数相加得到最后的结果。C代码实现:#include unsigned int totalnumberofone(un原创 2013-04-19 17:49:13 · 1016 阅读 · 0 评论 -
编程之美2.9----斐波那契数列
问题:斐波那契数列由如下递推关系式定义:F(0) = 0,F(1)=1,F(n)=F(n-1)+F(n-2) if n>1。解法:斐波那契数列是二阶递推数列,所以存在一个2*2的矩阵A,使得:(Fn, Fn-1) = (Fn-1, Fn-2)*A求得A=(1 1) (1 0)那么求数列的第n项就是等于转载 2013-08-04 20:16:46 · 805 阅读 · 0 评论 -
编程之美4.2 瓷砖覆盖地板
题目这个题目的题意很容易理解,在一个N*M的格子里,我们现在有两种类型的 砖块,1 * 2 和 2 * 1,问一共有多少种方案,可以将整个N*M的空间都填满。最简单的例子就是下面的了:编程之美中题目:某年夏天,位于希格玛大厦四层的微软亚洲研究院对办公楼的天井进行了一次大 规模的装修.原来的地板铺有 N×M 块正方形瓷砖,这些瓷砖都已经破损老化了,需要予以 更新.原创 2013-08-10 10:21:53 · 1339 阅读 · 1 评论 -
java中多种写文件方式的效率对比实验
1. 实验背景最近在考虑一个问题:“如果快速地向文件中写入数据”,java提供了多种文件写入的方式,效率上各有异同,基本上可以分为如下三大类:字节流输出、字符流输出、内存文件映射输出。前两种又可以分为带buffer及不带buffer2. 实验目标通过实验找出单线程场景下文件写入效率最高的方式,并量化各种文件写入方式在效率上的差距。3. 实验设计为减少其他环节的影...转载 2019-03-24 10:59:15 · 1779 阅读 · 0 评论