由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 扔鸡蛋那个题。。。。。不会。。。。
相关主题
Amazon电面,比楼层扔鸡蛋题更难的智力题CLRS上的红黑树题 13.3-6
leetcode tree level by level traversal problem问一道题(5)
tic tac toe程序是什么难度水平问个google面试题
分享一道Yelp电面题问个算法题
split a string into words in a dictionary这题有最坏情况比exponential 快的解法么?Hackerrank Arithmetic Progressions
这个掉鸡蛋的问题答案是啥?贴个概率题
请教一道题求问amazon online assessment的新题型?
问道 facebook 面试题总结一下 那些挂掉的和没挂掉的电面
相关话题的讨论汇总
话题: 鸡蛋话题: 天数话题: 100话题: 最坏话题: 投诉
进入JobHunting版参与讨论
1 (共1页)
m*******p
发帖数: 141
1
哭。。。。。。
电话了大约半个多小时。
是个中国人。 挺nice的。
我自己不争气。。。。。
哭。。。。。。。
题目答不出来, 郁闷地要死。
最后很紧张, 没跟他套近乎。 希望他见谅。
B*******1
发帖数: 2454
2
a? Two eggs?
I was asked by the indian hiring manager in my first phone interview with
Amazon.
w****x
发帖数: 2483
3
问这么恶心的问题.... 真无聊!!
H****r
发帖数: 2801
4
it's on careercup. DP

【在 m*******p 的大作中提到】
: 哭。。。。。。
: 电话了大约半个多小时。
: 是个中国人。 挺nice的。
: 我自己不争气。。。。。
: 哭。。。。。。。
: 题目答不出来, 郁闷地要死。
: 最后很紧张, 没跟他套近乎。 希望他见谅。

p*****2
发帖数: 21240
5

second

【在 w****x 的大作中提到】
: 问这么恶心的问题.... 真无聊!!
x*******1
发帖数: 28835
6
不是17么。 呵呵。
e***l
发帖数: 710
7
这个题还是很难想明白的。没做过的估计九成做不出来。
h******6
发帖数: 2697
8

不是100, 14么?

【在 x*******1 的大作中提到】
: 不是17么。 呵呵。
h****e
发帖数: 928
9
虽然这些brainteasers的题目不流行了,还是读一两本书
有备无患吧:
How to move Mount Fuji 或
How to ace the brainteaser interview
t**********h
发帖数: 2273
10
原题是什么?

哭。。。。。。电话了大约半个多小时。 是个中国人。 挺nice的。 我自己不争气。
。。。。哭。。。。。。。题目答不出来, 郁闷地要死。 最后很紧张, 没跟他套近
乎。 希望他见谅........
★ Sent from iPhone App: iReader Mitbbs 7.56 - iPad Lite

【在 m*******p 的大作中提到】
: 哭。。。。。。
: 电话了大约半个多小时。
: 是个中国人。 挺nice的。
: 我自己不争气。。。。。
: 哭。。。。。。。
: 题目答不出来, 郁闷地要死。
: 最后很紧张, 没跟他套近乎。 希望他见谅。

相关主题
这个掉鸡蛋的问题答案是啥?CLRS上的红黑树题 13.3-6
请教一道题问一道题(5)
问道 facebook 面试题问个google面试题
进入JobHunting版参与讨论
K*******i
发帖数: 399
11
如果是巧妙的归约到
1 + 2 + ... + N >= 100, 求的最小的N = 14
那是brain teaser 智力题
如果要推广到n层楼m个鸡蛋,那是DP题
参考:http://www.mitbbs.com/article_t/JobHunting/31626309.html
这题从Goolge的那个百层楼扔鸡蛋题变换而来,原来那道题,只需要从14, 27, 39, 50
,60, 69, 77, 84, 90, 95, 99, 100层依次扔第一个鸡蛋就可以了,然后再用第二个鸡
蛋作线性逐层探测。
变体题是这样的,从A地发货到B地,所需要时间是某个常数x, 1 <= x <= 100, 怎么找
出x的准确值?
方法是寄东西给顾客(顾客的数量不限制).对每个顾客都承诺货物能在天数t内到达,
如果按时或者提前收到货物,顾客就默认。如果迟到了,则顾客就一定会立即投诉。
现在要求你用这个方法求出x的准确值, 使得等待的总天数最短(用最短的时间求得x),
要求最多只准收到两次投诉,收到第三次投诉就告失败。
我明确告诉他,这题和一道经典的楼层扔鸡蛋题类似,大体思路就是先用第一次投诉机
会确定一个范围,收到投诉后再改用线性逐天探测。
他说这题是和那题思想类似,但是要求不同,也更难。主要是要求等待的总天数要尽可
能短。所以一开始选50天不是最好的解法。他还说,这题比较难,主要是看看你有什么
思路想法,不要求一定要给出正确的答案来。
讨论过程中他还说,如果一开始太激进,从比较小的天数尝试起,就会很快把两次投诉
机会耗光。相反,如果比较保守,从很大的天数尝试起,则等待的天数又会太长,难点
在如何找平衡?如何对最坏情况也能达到平衡?
更新解答
实际上这题就是考查动态规划。还是要借鉴扔鸡蛋题的动态规划思想。
扔鸡蛋题要最小化最坏情况下扔鸡蛋的总次数,而这道题要最小化最坏情况下总的等待
天数。
令F[i]表示已知1 <= x <= i的前提下,最坏情况下最少的等待总天数,j用来从1到i-1
穷举,如果承诺j天到货但收到投诉,则改用线性探测,最坏情况总的等待天数是(i -
1) + (i - 2) + (i - 3) + ... + j。 如果承诺j天但没有收到投诉,说明1 <= x <=
j, 则问题就转换为求一个规模更小的子问题F[j], 再加上已经等待了的天数j
所以动态规划的递推方程为
F[i] = min{max((F[j] + j), sum(from j to i-1)), 1 <= j <= i - 1}
基础情形F[1] = 0, F[2] = 1
对原型的扔鸡蛋题,令F[i]表示i层楼在最坏情况下最少的扔鸡蛋总次数。j用来从1到i
穷举,决定从哪层开始扔第一个鸡蛋。如果第一个鸡蛋在第j层碎了,则改用线性探测
,两个鸡蛋最坏情况下共扔了j次。如果第一个鸡蛋在j层没有碎,则从第j+1层开始算
起,上面共有i-j层楼,问题转换为一个规模更小的子问题F[i - j], 再加上已经扔的
次数1。
则有类似的动态规划递推方程
F[i] = min{max((F[i - j] + 1), j), 1 <= j <= i}
基础情形F[0] = 0, F[1] = 1
大家可以看看两个方程的类似之处。
另外如果k > 2, 也就是有三个鸡蛋以上或者允许三次以上投诉,则动态规划方程需要
增加一个关于k的维度进行推广。
附注:
对100层楼,2个鸡蛋的问题,共有六组解都能保证最坏情况下最多扔14次
9-->22-->34-->45-->55-->64-->72-->79-->85-->90-->94-->97-->99-->100
10-->23-->35-->46-->56-->65-->73-->80-->86-->91-->95-->98-->100
11-->24-->36-->47-->57-->66-->74-->81-->87-->92-->96-->99-->100
12-->25-->37-->48-->58-->67-->75-->82-->88-->93-->97-->100
13-->26-->38-->49-->59-->68-->76-->83-->89-->94-->98-->100
14-->27-->39-->50-->60-->69-->77-->84-->90-->95-->99-->100
第一组解是动态规划程序求出的解答。
第六组解是网上最常见的解答,经过分析,巧妙的转换为求出等差数列1 + 2 + ... + d
能刚好超过100, 解出d = 14
其它四组解也是对的。数列的共同特点是,二阶等差数列,不考虑边界100,各项间距
依次减少1
h****e
发帖数: 928
12
多谢,好详细的解答。

50

【在 K*******i 的大作中提到】
: 如果是巧妙的归约到
: 1 + 2 + ... + N >= 100, 求的最小的N = 14
: 那是brain teaser 智力题
: 如果要推广到n层楼m个鸡蛋,那是DP题
: 参考:http://www.mitbbs.com/article_t/JobHunting/31626309.html
: 这题从Goolge的那个百层楼扔鸡蛋题变换而来,原来那道题,只需要从14, 27, 39, 50
: ,60, 69, 77, 84, 90, 95, 99, 100层依次扔第一个鸡蛋就可以了,然后再用第二个鸡
: 蛋作线性逐层探测。
: 变体题是这样的,从A地发货到B地,所需要时间是某个常数x, 1 <= x <= 100, 怎么找
: 出x的准确值?

t**********h
发帖数: 2273
13
多谢

50

【在 K*******i 的大作中提到】
: 如果是巧妙的归约到
: 1 + 2 + ... + N >= 100, 求的最小的N = 14
: 那是brain teaser 智力题
: 如果要推广到n层楼m个鸡蛋,那是DP题
: 参考:http://www.mitbbs.com/article_t/JobHunting/31626309.html
: 这题从Goolge的那个百层楼扔鸡蛋题变换而来,原来那道题,只需要从14, 27, 39, 50
: ,60, 69, 77, 84, 90, 95, 99, 100层依次扔第一个鸡蛋就可以了,然后再用第二个鸡
: 蛋作线性逐层探测。
: 变体题是这样的,从A地发货到B地,所需要时间是某个常数x, 1 <= x <= 100, 怎么找
: 出x的准确值?

k******I
发帖数: 238
14
可能是面试官本人出来了

【在 h****e 的大作中提到】
: 多谢,好详细的解答。
:
: 50

w**z
发帖数: 8232
15
赞,能问一下您花了多久码了这些字?

50

【在 K*******i 的大作中提到】
: 如果是巧妙的归约到
: 1 + 2 + ... + N >= 100, 求的最小的N = 14
: 那是brain teaser 智力题
: 如果要推广到n层楼m个鸡蛋,那是DP题
: 参考:http://www.mitbbs.com/article_t/JobHunting/31626309.html
: 这题从Goolge的那个百层楼扔鸡蛋题变换而来,原来那道题,只需要从14, 27, 39, 50
: ,60, 69, 77, 84, 90, 95, 99, 100层依次扔第一个鸡蛋就可以了,然后再用第二个鸡
: 蛋作线性逐层探测。
: 变体题是这样的,从A地发货到B地,所需要时间是某个常数x, 1 <= x <= 100, 怎么找
: 出x的准确值?

m*******p
发帖数: 141
16
谢谢!
学习了。

50

【在 K*******i 的大作中提到】
: 如果是巧妙的归约到
: 1 + 2 + ... + N >= 100, 求的最小的N = 14
: 那是brain teaser 智力题
: 如果要推广到n层楼m个鸡蛋,那是DP题
: 参考:http://www.mitbbs.com/article_t/JobHunting/31626309.html
: 这题从Goolge的那个百层楼扔鸡蛋题变换而来,原来那道题,只需要从14, 27, 39, 50
: ,60, 69, 77, 84, 90, 95, 99, 100层依次扔第一个鸡蛋就可以了,然后再用第二个鸡
: 蛋作线性逐层探测。
: 变体题是这样的,从A地发货到B地,所需要时间是某个常数x, 1 <= x <= 100, 怎么找
: 出x的准确值?

1 (共1页)
进入JobHunting版参与讨论
相关主题
总结一下 那些挂掉的和没挂掉的电面split a string into words in a dictionary这题有最坏情况比exponential 快的解法么?
面试题大整数互质求和这个掉鸡蛋的问题答案是啥?
最近有人做过amazon online assessment吗?换题库了吗请教一道题
这道twitter 等差数列等比数列面经题怎么做?问道 facebook 面试题
Amazon电面,比楼层扔鸡蛋题更难的智力题CLRS上的红黑树题 13.3-6
leetcode tree level by level traversal problem问一道题(5)
tic tac toe程序是什么难度水平问个google面试题
分享一道Yelp电面题问个算法题
相关话题的讨论汇总
话题: 鸡蛋话题: 天数话题: 100话题: 最坏话题: 投诉