input T 1<=T<=10000 n m 1<=n<=2000000007 1<=m<=32 output m个鸡蛋从1到n哪一楼x扔下去刚好没碎,而再x+1楼扔下去就碎了,求最少扔的次数无论x为1到n的哪个数都能确定x 如果x>32,输出Impossible,否则输出x 做法:dp,d(x,y)=d(x,y-1)+d(x-1,y-1),x:egg,y:floor求出下限,即x个鸡蛋至少要试多少次 # include <stdio.h> # in…
本文由 @lonelyrains 出品.转载请注明出处.  文章链接: http://blog.csdn.net/lonelyrains/article/details/46428569 高楼扔鸡蛋问题   这个问题非常有名了  早几年之前面试的时候都遇到过,可是当时也确实没搞清楚怎么做,后来也没管了.今天网上偶然碰到,打算趁这个机会彻底搞清楚,就写一篇博文吧. 网上非常多资料,但我感觉都不太易懂,每一步的推导是为什么. 所以我这里仅仅想写一种比較简单.比較完整的推演流程. 题目描写叙述: (挑…
这是一道经典的DP模板题. https://vjudge.net/problem/POJ-3783#author=Herlo 一开始也是不知道咋写,尝试找了很多博客,感觉有点领悟之后写下自己的理解. 题意就是: 对于一种蛋,如果它在第m层楼摔不碎,但是在第m+1层摔碎了,那么它的硬度就是m. 有若干层楼,你有若干个一样的蛋,你每一次尝试的结果都会是最坏的情况,问你在这种运气最差的情况下至少丢几次蛋才能知道它的硬度. A. 如果蛋的数量是0,那根本都尝试不了,只能试0次 B. 如果你只有一个蛋,那…
Google的面试题在刁钻古怪方面相当出名,甚至已经有些被神化的味道.这个话题已经探讨过很多次,而科技博客 BusinessInsider这两天先是贴出15道Google面试题并一一给出了答案,其中不少都是流传很广的,因此让人感到不过瘾,不少人兴奋地表 示“让难题来得更猛烈吧!”,于是今天又出了续篇,再次贴出了另外15道Google的面试题,但却没有给出答案. 怎么样?下边先来热热身,再来看看你有没有可能去Google工作吧! 第一题:多少只高尔夫球才能填满一辆校车?(职位:产品经理) 解析:通…
一道Google面试题,题目如下:"有一个100层高的大厦,你手中有两个相同的玻璃围棋子.从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面." 版本一: 为了得到两个棋子的最优策略,我们先简化问题,看看一个棋子的情况.如果手中只有一个棋子,为了得知临界层面,你只有一种选择:从2楼开始,一层一层地试,直到棋子被打碎,此时你站的楼层就是所求的临界层面.在最差的情况下,我们需要投掷99-2+1=98次,你可能奇怪为什么不是100-2+1=…
http://ac.jobdu.com/problem.php?pid=1534 题目1534:数组中第K小的数字 时间限制:2 秒 内存限制:128 兆 特殊判题:否 提交:1120 解决:208 题目描述: 给定两个整型数组A和B.我们将A和B中的元素两两相加可以得到数组C.譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6].现在给你数组A和B,求由A和B两两相加得到的数组C中,第K小的数字. 输入: 输入可能包含多个测试案例.对于每个测试案例,…
Google面试题 股市上一个股票的价格从开市开始是不停的变化的,需要开发一个系统,给定一个股票,它能实时显示从开市到当前时间的这个股票的价格的中位数(中值). SOLUTION 1: 1.维持两个heap,一个是最小堆,一个是最大堆. 2.一直使maxHeap的size大于minHeap. 3. 当两边size相同时,比较新插入的value,如果它大于minHeap的最大值,把它插入到minHeap.并且把minHeap的最小值移动到maxHeap. ...具体看代码 /***********…
6.5 There is a building of 100 floors. If an egg drops from the Nth floor or above, it will break. If it's dropped from any floor below, it will not break. You're given two eggs. Find N, while minimizing the number of drops for the worst case 这道题说有10…
题目: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次. 找工作,准备看写题目,题目说是Google面试题,遂很认真地自己做了下. 找规律: 其实可以从中找出数列的规律.求从1到n数字中的1共有多少个,会想到按照数字的位数来观察观察,比如1位数字里(从1到9)共有1个,记W[1]=1:2位数字里(01到99)共有W[2]个,3位数字(001到999)共有W[3]个,定义如下数组: }; in…
2014-05-03 22:10 题目链接 原题: Given a dictionary, and a list of letters ( or consider as a string), find the longest word that only uses letters from the string. [I didn't meet this question, what's the best solution?] 题目:给定一个字符串,和一个字典.从字典中找出一个最长的词,并且这个词…
经典的动态规划问题,题设是这种: 假设你有2颗鸡蛋,和一栋36层高的楼,如今你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该怎样用最少的測试次数对于不论什么答案楼层都可以使问题得到解决. 假设你从某一层楼扔下鸡蛋,它没有碎,则这个鸡蛋你能够继续用 假设这个鸡蛋摔碎了,则你能够用来測试的鸡蛋降低一个 全部鸡蛋的质量同样(都会在同一楼层以上摔碎) 对于一个鸡蛋,假设其在楼层i扔下的时候摔碎了,对于不论什么不小于i的楼层,这个鸡蛋都会被摔碎 假设在楼层i扔下的时候没有摔碎,则对于不论什么不大于i的楼层,这…
Google面试题: 在一个重男轻女的国家里,每一个家庭都想生男孩.假设他们生的孩子是女孩.就再生一个,直到生下的是男孩为止,这种国家.男女比例会是多少? 答案:1:1 分析:  出生男女概率是50%,所以每次出生的男女比例是同样的. 阿里的题目: 某国家很重男轻女,若一户人家生了一个女孩,便再要一个,直到生下男孩为止,如果生男生女概率相等,请问平均每户人家有多少个女孩? 与google的题目实际上是一样的. 如果这个国家有n对夫妇,那么n对夫妇将生下n个男孩,这n个男孩是这样生下的.如果生男生…
http://blog.csdn.net/joylnwang/article/details/6769160 经典的动态规划问题,题设是这样的:如果你有2颗鸡蛋,和一栋36层高的楼,现在你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该如何用最少的测试次数对于任何答案楼层都能够使问题得到解决. 如果你从某一层楼扔下鸡蛋,它没有碎,则这个鸡蛋你可以继续用 如果这个鸡蛋摔碎了,则你可以用来测试的鸡蛋减少一个 所有鸡蛋的质量相同(都会在同一楼层以上摔碎) 对于一个鸡蛋,如果其在楼层i扔下的时候摔碎了,对于任…
4554 BallsThe classic Two Glass Balls brain-teaser is often posed as:“Given two identical glass spheres, you would like to determine the lowest floor in a 100-storybuilding from which they will break when dropped. Assume the spheres are undamagedwhen…
问题描写叙述: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.比如输入12,从1到12这些整数中包括1 的数字有1.10.11和12.1一共出现了5次. 这是一道广为流传的google面试题. 算法: 第一种思路:对从1到n的每一个数进行统计,统计的结果相加.算法复杂度为O(n) 另外一种思路:举例说明. 令n=321.则: 它的个位上出现1的形式为XY1,次数和为33(由于十位百位上可能出现的组合为0-32) 它的十位上出现1的次数和较为复杂,形式为X1Y,X的取值范围为0-…
题目描述: 一个大小为n的数组,里面的数都属于范围[0,n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间. 算法分析: 这个题目要求用O(n)的时间复杂度,这意味着只能遍历数组一次.同时还要寻找重复元素,很容易想到建立哈希表来完成,遍历数组时将每个元素映射到哈希表中,如果哈希表中已经存在这个元素则说明这就是个重复元素.因此直接使用C++ STL中的hash_set,可以方便的在O(n)时间内完成对重复元素的查找. 但是题目却在空间复杂度上有限制——要求为O(1)…
题目原文: Suppose that you have an n-story building (with floors 1 through n) and plenty of eggs. An egg breaks if it is dropped from floor T or higher and does not break otherwise. Your goal is to devise a strategy to determine the value of T given the…
这是经典的扔鸡蛋的题目. 同事说以前在uva上见过,不过是扔气球.题意如下: 题意: 你有K个鸡蛋,在一栋N层高的建筑上,被要求测试鸡蛋最少在哪一层正好被摔坏. 你只能用没摔坏的鸡蛋测试.如果一个鸡蛋在上一次测试中没有被摔坏,那么你可以重复使用,否则,你只能用下一个鸡蛋. 需要求,最小的步数,使得你在这么多步内一定测试出结果. 思路: O(K * N^2) 首先,这个题比较绕.需要求一个最优决策使得步数最小,但是实际的步数是随着真实结果变化而变化的. 于是,为了保证在我们假设的步数内一定能够解完…
date: 2018-12-14 13:34:56 updated: 2018-12-14 13:34:56 Google面试题(选自公众号) 问题 把你的手机拨号页想象成一个棋盘.棋子走只能走"L"形状,横着两步,竖着一步:或者竖着两步,横着一步. 现在,假设你拨号只能像棋子一样走"L"形状.每走完一个"L"形拨一次号,起始位置也算拨号一次.问题:从某点开始,在N步内,你可以拨到多少不同的数字? 讨论 每次面试,我基本都会分成两个部分:首先我们…
题目链接 这个问题是谷歌面试题的加强版,面试题问的是100层楼2个鸡蛋最坏扔多少次:传送门. 下面我们来研究下这个题,B个鸡蛋M层楼扔多少次. 题意:给定B (B <= 50) 个一样的球,从 M (M <= 1000) 层楼上一个一个往下扔,存在某个楼层K,使得低于它的楼层往下扔球,球不会碎,在第K层扔下去会碎.求最坏情况下,需要扔几次才能确定这个K. dp[i][j] 表示有i层楼, 剩余j个球时, 最坏情况要确定K 所需的次数 那么在这些楼层里 我们可以选择在k层(1<= k &l…
2014-05-08 23:45 题目链接 原题: How would you use Dijkstra's algorithm to solve travel salesman problem, which is to find a shortest path from a starting node back to the starting node and visits all other node exactly once. 题目:如何用Dijkstra算法来解决TSP问题?(谁会出这种…
某猎头收集了140多个Google的面试题,主要是下面这些职位的. Product Marketing Manager Product Manager Software Engineer Software Engineer in Test Quantitative Compensation Analyst Engineering Manager AdWords Associate 这 篇Blog例举了Google用来面试下面这几个职位的面试题.很多不是很容易回答,不过都比较经典与变态,是 Goo…
2014-05-08 21:33 题目链接 原题: largest number that an int variable can fit given a memory of certain size 题目:给定特定内存大小,请问int型的变量能表示的最大整数是多少? 解法:这个“Guy”出的题目总是这样表意不清.特定大小的内存是什么意思?他要说的是字长吧?16位int占两字节,32位以后int都占四字节.这样能表示的最大整数就是(1 << sizeof(int) * 8  - 1) - 1.…
2014-05-06 10:18 题目链接 原题: Given a ,) (,) (,), (,) should be returned. Some suggest to use Interval Tree to get this done in O(logn), but I did not understand how to construct and use the Interval Tree after reading its wiki page. Is there any other w…
2014-05-06 07:11 题目链接 原题: Find a shortest path ,) to (N,N), assume is destination, use memorization to cache the result. Here is my code. I am not sure if I am caching it right. 题目:给定一个N * N的矩阵,找出从(0, 0)到(n - 1, n - 1)的最短路径.此人在后面还贴上了自己的代码,从代码水平上看此人实力…
1. 村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情...村里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情.村里的规矩不容忍通奸.任何一个妻子,一旦能证明自己的男人偷情,就必须当天把他杀死.村里的女人全都严格照此规矩办事.一天,女头领出来宣布,村里至少有一个丈夫偷情.请问接下来会发生什么事?答案:这是一个典型的递归问题.一旦所有的妻子都知道至少有一个男人出轨,我们就可以按递归方式来看待这个流程.先让我们假设只有一个丈夫偷情.则他的妻子见不到…
谷歌是不少IT人都想去的企业,那么在进入公司前,少不了面试笔试的测试.那么这里我们就总结了如下谷歌笔试题,并提供了一些参考答案.希望对您有用. 谷歌笔试题:判断一个自然数是否是某个数的平方.当然不能使用开方运算. 假设待判断的数字是 N. 方法1: 遍历从1到N的数字,求取平方并和N进行比较. 如果平方小于N,则继续遍历:如果等于N,则成功退出:如果大于N,则失败退出. 复杂度为O(n^0.5). 方法2: 使用二分查找法,对1到N之间的数字进行判断. 复杂度为O(log n). 方法3: 由于…
在当前经济形势不景气的情况下,谷歌招聘新员工是一件令人振奋的事,特别是对那些在当前金融风暴中渴望找到安全港的年轻经理们和软件开发商们来说是个好消息. 不过,也不要高兴太早,谷歌在招聘新员工时,更加青睐名牌大学的学生,即便你是人到中年,招聘时谷歌也会看你的大学平均成绩. 谷歌需要的是那些有志改变世界的具有远大抱负的人才.不仅如此,即便是你达到了它们所有的这些要求,你还必须通过谷歌的面试,而谷歌面试的问题真可谓是五花八门,以下是挑选的15个应聘不同职位所遇到的让你摸不着头脑的面试问题. 一. 村子里…
输入n,把1-n分成两个和相等的子集,有多少种分法 想了个dp,直接背包也行 #include <iostream> #include <cstdio> using namespace std; ]; int main() { int n; scanf("%d", &n); ) / ; ) { puts("); ; } s >>= ; dp[] = ; ; j <= n; j++) for(int i = s; i >=…
2014-05-08 23:18 题目链接 原题: If you have data coming in rapid succession what is the best way of dealing with redundant data? 题目:如果你有大量数据流入,如何处理冗余数据? 解法:又是“Guy”出的题,题意不清,没有情景.神马意思?做个Cache吧. 代码: // http://www.careercup.com/question?id=5680330589601792 //…