08 2011 档案

摘要:网络中超难的75道逻辑题及答案【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1升水,因此6只能向5倒4升水,然后将6剩余的2升,倒入空的5里面,再灌满6向5里倒3升,剩余3升。【2】周雯的妈妈是豫林水泥厂的化验员。一天,周雯来到化验室做作业。做完后想出去玩。"等等,妈妈还要考你一个题目,"她接着说,"你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来 阅读全文
posted @ 2011-08-30 20:09 _CX_ 编辑
摘要:参考http://forum.byr.edu.cn/wForum/disparticle.php?boardName=ParttimeJob&ID=225996第一题,简答题:1、 extern “c”{}是什么含义?用来解决什么问题?2、 至少说出两种经典的设计模式,并举例说明使用场景,有伪代码更佳。3、 Tcp连接的time-wait是什么状态,描述其发生的场景,说明它存在的好处/坏处 。第二题 算法与程序设计题1、 有一个任务执行器,每天定时执行N个任务(N<1000),每次只能执行一个任务,而各任务之间存在着依赖关系,如任务A需要依赖任务B任务完成后才能进行。虽然各个任务 阅读全文
posted @ 2011-08-30 17:54 _CX_ 编辑
摘要:写出这样一个函数,输入一个n,输出从1到这个数字之间的出现的1的个数,比如f(13)等于6; f(9)等于1;网上有很多这道题的解法,大多采用穷举法。这把这个算法题变成了程序设计,这道题,我认为是总结一个递推公式,然后用递推法实现,比较好。后来在网上考证了一下,这道题本来也是让总结一个数学函数即可,无需编程。既然写了,就贴出来,发表一下自己的解法。这道题还有另一半,当f(n)=n是,最小的n是多少?本人还没有好的方法,所以就不贴了。下面的程序是上半部java实现的。/*可以推出下列递推公式:* f(n)=(a>1?s:n-s*a+1)+a*f(s-1)+f(n-s*a)当n>9时; 阅读全文
posted @ 2011-08-30 17:20 _CX_ 编辑
摘要:一.最基本题型(说明:此类题型比较简单) 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?(5秒-1分钟) 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?(40秒-3分钟) 4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不... 阅读全文
posted @ 2011-08-30 17:20 _CX_ 编辑
摘要:题目描述:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。分析:设置两个指针p1,p2,首先p1和p2都指向head,然后p2向前走k步,这样p1和p2之间就间隔k个节点,最后p1和p2同时向前移动,直至p2走到链表末尾。题目描述:给出两个单向链表的头指针(如下图所示),比如h1、h2,判断这两个链表是否相交。这里为了简化问题,我们假设两个链表均不带环。分析:这是来自编程之美上的微软亚院的一道面试题目。请跟着我的思路步步深入(部分文字引自编程之美):直接循环判断第一个链表的每个节点是否在第二个链表中。但,这种方法的时间复杂度为O(Length(h1) * Le 阅读全文
posted @ 2011-08-06 19:23 _CX_ 编辑
摘要:SPFA——Shortest Path Faster Algorithm,可以在O(kE)的时间复杂度内求出源点到其他所有点的最短路径,可以处理负边。SPFA的实现甚至比Dijkstra或者Bellman_Ford还要简单:设Dist代表S到I点的当前最短距离,Fa代表S到I的当前最短路径中I点之前的一个点的编号。开始时Dist全部为+∞,只有Dist[S]=0,Fa全部为0。维护一个队列,里面存放所有需要进行迭代的点。初始时队列中只有一个点S。用一个布尔数组记录每个点是否处在队列中。每次迭代,取出队头的点v,依次枚举从v出发的边v->u,设边的长度为len,判断Dist[v]+len是 阅读全文
posted @ 2011-08-06 15:15 _CX_ 编辑