算法
文章平均质量分 71
wangqiaoshi
这个作者很懒,什么都没留下…
展开
-
打鱼问题
abcde五人打渔,打完睡觉,a先醒来,扔掉1条鱼,把剩下的分成5分,拿一份走了;b再醒来,也扔掉1条,把剩下的分成5份,拿一份走了;然后cde都按上面的方法取鱼。问他们一共打了多少条鱼,写程序和算法共打了多少条鱼的结果有很多。但求最少打的鱼的结果是3121条鱼(应该找这5个人问问,用什么工具打了这么多条鱼) 大家可以先用计算器验证一下3121是否正确。原创 2013-05-06 22:23:39 · 365 阅读 · 0 评论 -
给出N个无序的数,然后找出其中最大的k个数
解题思路: 首先测试数据有可能会有一亿个数,数据量特别的大,数据库不可能存储这么多的数据。如果直接sort排序,NlogN时间复杂度实在是太高,大于10^9。我们可以考虑对数据进行分块读取,每次读取的数据块大小应大于k。 不如先假设第一次读取的数据块前k个数最大,然后把k个数建成最小二叉堆。然后从第k+1个数开始,每个数都与堆顶的数值进行比较,如果数字i大于原创 2013-06-24 17:11:13 · 440 阅读 · 0 评论 -
搜狗笔试:N个正实数选出若干个之和最接近M
搜狗:有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度。public class SearchN { private boolean dataflag[]; private double data[]; private double原创 2013-06-26 10:18:10 · 424 阅读 · 0 评论 -
[zz]澄清P问题、NP问题、NPC问题的概念
[zz]澄清P问题、NP问题、NPC问题的概念这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下转载 2013-07-13 22:20:43 · 322 阅读 · 0 评论 -
稀疏矩阵的存储格式(Sparse Matrix Storage Formats)
from http://blog.csdn.net/anshan1984/article/details/8580952 稀疏矩阵的存储格式对于很多元素为零的稀疏矩阵,仅存储非零元素可使矩阵操作效率更高。现有许多种稀疏矩阵的存储方式,但是多数采用相同的基本技转载 2013-12-26 13:39:18 · 1661 阅读 · 0 评论 -
Java多线程笔记6-ThreadPoolExecutor/ExecutorService
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执转载 2014-03-11 19:33:54 · 704 阅读 · 0 评论 -
Java线程池使用说明
转自:http://blog.csdn.net/sd0902/article/details/8395677一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我转载 2014-03-11 21:46:30 · 283 阅读 · 0 评论 -
从B 树、B+ 树、B* 树谈到R 树
第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自转载 2013-06-20 10:46:58 · 493 阅读 · 0 评论 -
海量数据处理之Bloom Filter详解
前言 本博客内曾已经整理过十道海量数据处理面试题与十个方法大总结。接下来,本博客内会重点分析那些海量数据处理的方法,并重写十道海量数据处理的面试题。如果有任何问题,欢迎不吝指正。谢谢。一、什么是Bloom Filter Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种转载 2013-06-23 22:24:32 · 267 阅读 · 0 评论 -
微软亚院之编程判断俩个链表是否相交
题目:给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?参考:http://blog.csdn.net/shiren_bod/article/details/6651703分析:方法一、循环判断第一个链表是否有结点原创 2013-06-22 09:40:46 · 330 阅读 · 0 评论 -
腾讯面试题:买200返100优惠券,实际上折扣是多少?
到商店里买200的商品返还100优惠券(可以在本商店代替现金)。请问实际上折扣是多少?由于优惠券可以代替现金,所以可以使用200元优惠券买东西,然后还可以获得100元的优惠券。典型错误回答 200/300 = 67%.简要分析:(假设商家和你都不笨,每人求最大利益,商家想卖多商品,买主想少花钱,而你不可能买到刚好,故只能出现以下情况)用枚举清晰设花销为x元,原创 2013-06-08 08:36:44 · 553 阅读 · 0 评论 -
连号区间数
标题:连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现原创 2013-05-22 13:08:02 · 376 阅读 · 0 评论 -
翻硬币
import java.util.Scanner;public class coin { public static void main(String[] args) { Scanner input=new Scanner(System.in); String begin=input.nextLine(); String result=input.nextLine(); i原创 2013-05-22 14:54:43 · 415 阅读 · 0 评论 -
阿里巴巴电话面试
1.jvm启动之后分几部分2.spring的有几种注入方式一 setter方法注入配置文件如下: element -->action实现类中代码:private IHelloService helloservice;private String name ;public void sayHello(){helloser原创 2013-05-22 21:01:13 · 403 阅读 · 0 评论 -
hashMap原理
原文地址:http://grunt1223.javaeye.com/blog/544497版权声明:所有版权皆归原作者所有HashMap是一种十分常用的数据结构,作为一个应用开发人员,对其原理、实现的加深理解有助于更高效地进行数据存取。本文所用的jdk版本为1.5。 使用HashMap 《Effective JAVA》中认为,99%的情况下,当你覆盖了equals方法后,请务必覆盖hashCode转载 2013-05-22 20:41:59 · 629 阅读 · 0 评论 -
【Programming Pearls】查找所有的变位词
给定一本英语单词词典(每个输入行一个单词,字母都用小写),怎么找出所有的变位词类。例如:“deposit”、“dopiest”、“posited”是同一类变位词。 假如在词典中大约有230000个单词,即使一次简单的变位词比较至少也需要花一微秒的时间,总共需要230000个单词*230000次比较/个单词*1微秒/一次比较=52900*10^6微秒=52900秒=14.7小原创 2013-05-25 11:17:47 · 389 阅读 · 0 评论 -
卡特兰数
一、Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数)问题描述:12个高矮不同的人,排成两排,每排必须是从矮到高排原创 2013-05-30 13:26:42 · 231 阅读 · 0 评论 -
标题:大臣的旅费
标题:大臣的旅费 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。 J是T国重要大臣原创 2013-05-29 21:13:41 · 584 阅读 · 0 评论 -
桶排序
桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。 例如要对大小为[1原创 2013-06-03 20:03:01 · 274 阅读 · 0 评论