Appearance
全局配置
Appearance
这个问题的本质就是利用两个水桶的已知容量倒来倒去,问题的解法并不唯一。
大概思想就是先分5组跑,跑出每组第一名,将每组第一名放到一起跑,找出25马的第一名,然后再比一次,此时比了六次,找到了第一名,假设是A1。 然后假设如果最后第六次比赛,最后两名是D1和E1。那么前三不可能出现在D和E组内。 同时,A组的最后两名A4、A5由于比A1,A2,A3慢,也不可能成为前三。 故A组,至多再挑除A1外的前两名A2、A3。 也可能A2、A3都进不去前三。这种情况下,B组至多可能B1、B2成为二、三名。 由于A1是冠军,比A1速度稍慢的是A2和B1,亚军只可能在他们两个之中产生。 如果季军不在前两组,那么也仅C1有资格再进行一场比赛了,因为它仅输过A1、B1。
假设最终名次也是按照字母顺序,即A1名次最高,E1名次最低。D组和E组全部淘汰。A1也是25匹马中的第一,接下来需要选出第二名和第三名。
由于A1是冠军,比A1速度稍慢的是A2和B1,亚军只可能在他们两个之中产生。 假设A2是亚军,那么季军需要在A3、B1中选择。 假设B1是亚军,那么季军需要在A2、B2、C1中选择。
综上,只需要A2、A3、B1、B2、C1再比赛一场即可。
这个问题不太容易想到可以先记住答案,需要老鼠的数量为log_2 1000
为了简化问题,可以先假设有只有8瓶药水,其中有一瓶有毒,根据公式需要 log_2 8=3个老鼠 先将瓶子进行编号为0-7号,用位数表示老鼠
将4、5、6、7号药水混合到一起喂给老鼠1,将2,3,6,7号药水混合喂给老鼠2,将1、3、5、7药水混合喂给老鼠3,观察老鼠是否中毒。
中毒的老鼠标号为1,未中毒的老鼠标号为0,将三只老鼠标号组合到一起即为有毒药水的标号。
例如,老鼠1中毒,老鼠2未中毒,老鼠3中毒。那么三只老鼠的二进制表示为101,即5号药水有毒。因为老鼠1中毒,说明4、5、6、7号药水中含有毒的药水。老鼠2未中毒,说明2、3、6、7无毒。老鼠3中毒,说明1、3、5、7中有一瓶有毒。所以有毒的为5号药水
其实和直接将二进制转化为十进制的结果是一样的。 回到正题,如果有1000瓶药水,则需要10只老鼠,因为10位二进制足以表示0-999。
这是一个概率问题,答案是三分之一。 其实根据不同理解,1/2、1/3、1/4都可以解释,更像是一个语言理解题。
题目多少有些歧义,面试时说清楚就行了。 已知家里有两个孩子A和B,其中一个是女孩,关键问题就在其中一个是女陔这句话上。 如果你理解为这个是指定了一个孩子为女孩,例如A为女孩,那么B也是女孩的概率显然为二分之一。 如果你理解为A或B有一个孩子是女孩,问另一个孩子也是女陔的概率,这就是三分之一了。因为两个孩子的性别只有男男、男女、女男、女女四种组合,男男被排除了,剩下三种组合均符合题意,所以是三分之一。 其实,题目本身应该是第二种理解的意思,告诉你了有一个是女孩并未明确说哪个是。但很多人看到题目就会先入为主,先指定了一个孩子为女孩,那另一个孩子为女孩的概率肯定是二分之一了,这是不正确的
这个问题的关键就是要知道绳子可以从两头烧
这个问题的思想是采用分治的思想。
将12个小球分为三组(因为分成两组不能找到重量不一样的球在哪组),为A组、B组、C组 将三组球分别两两称重,找到重量和另外两组不同的那一组(只要有两组可以使天平平衡,重量不一致的球必然在第三组)。假设坏的球在C组 将C组的球分成两组C1和C2,每组两个球,这时从A组和B组里找到两个正常的球,分别和C1和C2去称,天平不能平衡说明重量不一致的球就在哪组。假设在C1 将C1组的球分别和正常的球去称,天平不平衡时就能找到重量与其他不一致的球。
这个问题应该是这几道题中最简单的了,将一个红球放到一个罐子中,另一个罐子放49个红球和50个蓝球,这样随便选出一个罐子取出红球的概率是1/2 * 1 + 1/2 * 49 /(49+50),接近0.75。
这个问题和平时用的纸币金额是一个道理,将一根金条切割两次可以得到三根金条,这三根金条必须可以组合出1-7之间的任意金额。
将金条分两次切成长度为1、2、4的金条即可。 第一天,将长度为1的金条支付给工人。 第二天,将长度为2的金条支付给工人,工人将长度为1的金条还给你。 第三天,将长度为1的金条支付给工人 第四天,将长度为4的金条支付给工人,工人将长度为1,2的金条还给你 第五天,将长度为1的金条支付给工人 第六天,将长度为2的金条支付给工人,工人将长度为1的金条还给你 第七天,将长度为1的金条支付给工人
这个问题就是用杯子倒来倒去,一共16两酒分给四个人,最后每个人都喝四两酒即可
用三个数字表示三个杯子,最开始为880,即两个8两的杯子是满的,一个3两的杯子是空的。
11.在地球什么地方能够,往南走1公里,然后往东走1公里,再往北走1公里能回到原点?
这个问题的本质就是往北走一公里和往南走一公里正好抵消,往东走一公里要回到原点。一共是两个答案。 我们只需要找到在哪里往东走一公里会回到原点呢?这样的点在地球上有无数个,主要集中在两个地方,即北极点附近和南极点附近。有一个周长为一公里的圆,圆心在北极点和南极点的连线上,只要站在这个圆上的任意一个点,向东或向西走一公里都会回到原点。
这时又有人说了,这个B点所在的圆还可以小一点,即一公里是这个圆的周长的整数倍,这样也是可以的,向东走一公里相当于绕了很多圈还是回到了原点。
所以答案是距离南极点1+1/(2 * pi * k)的点,都是可以的,k为正整数。
这个问题不难,很容易就可以想到,先正着推,在逆着推就可以了
正向思维: 运动员编号为1-50,单号出列后为2,4,6,……,50 运动员重新编号为1-25,单号出列后为2,4,6,……,24 运动员重新编号为1-12,单号出列后为2,4,6,……,12 运动员重新编号为1-6,单号出列后为2,4,6 运动员重新编号为1-3,单号出列后为2
反向思维: 第五轮运动员的编号为2 第五轮编号为2的运动员在第四轮编号为4 第四轮编号为4的运动员在第三轮中编号为8 第三轮编号为8的运动员在第二轮中编号为16 第二轮编号为16的运动员在第一轮中编号为32 所以,剩下的最后一名运动员在开始的编号为32
这是一道比较偏数学的题目
假设开始的数为m,从m加到n等于1000, 根据等差求和公式得(m+n)(n-m+1)/2=1000,(m+n)(n-m+1)=2000, m和n分别不论为奇数还是偶数,(m+n)(n-m+1)总为1奇1偶的乘积。 即2000为一个奇数和一个偶数的乘积,同时拆分成质数的乘积为, 2000=2 * 2 * 2 * 2 * 5 * 5 * 5
下面分情况讨论
一年有12个月,那么49个人最后至少有49/12 约等于 4个人 出生月份相同
答案是连续抛两次即可,第一次为正面、第二次为反面和第一次为反面、第二次为正面得概率相同。
这是一个非常有意思且非常高频的面试题,大概意思就是先观察几层电梯的钻石大小,记住最大的钻石大小,后面几层一旦出现比前几层钻石都大的钻石就直接拿了,这样其实也不能保证可以拿到最大的一颗,但却是一个最优解了。
这个问题的原型叫秘书问题,可以在维基百科上查到,在机率及赛局理论上,秘书问题(Secretary problem),类似的名称有相亲问题、止步问题、见好就收问题、苏丹的嫁妆问题、挑剔的求婚者问题等,属于最佳停止问题。内容是这样的:要聘请一名秘书,有 n 个应聘者。每次面试一人,面试后就要及时决定是否聘他,如果当时决定不聘他,他便不会回来。面试后总能清楚了解应聘者的合适程度,并能和之前的每个人做比较。问什么样的策略,才使最佳人选被选中的概率最大。
这个问题不算复杂,看过一遍就能记住答案。分成两堆,一堆10张,一堆42张,并且将第一堆的10张牌全部反转,这时两堆牌中正面朝上的数量是相同的。
这个问题关键是数字是大于等于1的数字,只有对方脑门上贴的是1,才能一次猜出自己的数字,所以1这个数字很关键,不是在对方脑门上,就是自己脑门上的两个可能数字之一,这个条件是必须要用上的。 相差1也很关键,仅知道相差1,然后看到对面的就知道自己的,说明有一个边界被排除了,而这个边界只可能是题目给的1这个下边界。应为都知道对方和自己不是1。从而得出不是2就是3。 而根据第二次问答的先后顺序又可以知道谁是2,谁是3。因为先回答的人一定是看到对方是2,结合自己不是1,得出自己是3。 而后回答的根据对方能确定推出自己是3,从而后知道自己是2。
第一轮:A说不知道,B也说不知道,说明两个人脑门上都没有数字1。每个人脑门上的数字都有两种可能。
第二轮:A说知道了,B也说知道了,说明B说不知道给A排除了一个可能,只有数字1才有可能被排除,A才有可能猜出自己脑门上的数字,所以A脑门的数字是3。 B听到A说知道了,说明自己说不知道给A排除了一个答案,排除的答案只能是1,A才能猜出,既然排除的是1,A只能是3,那么B脑门的数字则只能是2。
这个问题的思路是先将路程分为前半程和后半程,这样需要出动飞机会少些
具体细节可以看这个图
前半程:
后半程:
总结一下,几个加油的节点,分别在1/8,2/8,7/8,6/8处。共出动6架飞机。
这个问题最开始想到的可能是让速度最快的人分别送其他三个人过去,因为他回来所需的时间最短。其实不是这样的,最佳的解决方案是将两个耗时最多的人一起过桥,而不是分开过桥,并且不需要返回。
一共所需17分钟。
2块钱
这种没有具体的数字就要分类讨论下了
假设M>=N,那么A一次就把石子拿完了,A胜 假设M<N,如果N可以被(M+1)整除时,A失败,如果N不可以被(M+1)整除时,A胜
具体分析:
这个题的思路主要是逆推法
从最后面开始,如果前三个人都被喂鱼了,只剩4号和5号,那么无论4号说什么,5号都会反对,4号一定会被喂鱼,5号独吞100枚金币。所以3号无论说什么,4号只能同意。
3号知道这些,会提出“100,0,0”这种分配方案,4号海盗为了活命只能赞同,加上自己一票即可使得投票通过半数。
2号知道这些,会提出“98,0,1,1”的分配方案,以此拉拢4号和5号
1号知道这些,他还需要两个人支持他,2号是不可能的,3号只需1枚金币,4号或者5号其中一人即可,所以1号的分配方案是“97,0,1,2,0”或者“97,0,1,0,2”
拓展:如果题目改成投票半数人同意即可,又会怎样分配呢?
这是一个非常经典的动态规划问题,手撕代码时也很常见
如果是只有1个鸡蛋,这个问题就很简单了,为保证一定找到这个楼层,只能从第一层开始试。
题目中是两个鸡蛋,正常就是会想到二分法之类,先在50层扔一个,没碎,捡回来在75层扔,碎了,第二个鸡蛋只能从第1层开始试了。 第一个鸡蛋用来缩短范围,第二个鸡蛋用来遍历范围。
假设需要x次才能找到临界的楼层,也就是说第一个鸡蛋从第x层扔出(因为需要考虑最差情况,万一第一个鸡蛋碎了,为保证x次能找到,第一个鸡蛋需要从x层扔出。因为如果鸡蛋恰好在第x层碎了,在第x-1层没碎,第一个鸡蛋在x层以上的楼层扔的话,第二个鸡蛋需要遍历x次,一共需要x+1次) 如果第一个鸡蛋碎了,第二个鸡蛋遍历1至x-1层,则需要x次找到。 如果第一个鸡蛋没碎,则第一个鸡蛋的任务是需要继续缩小范围,还是为了保持这个x次能找到临界楼层的条件,现在只剩x-1次了,下一次只能在x+x-1层扔第一个鸡蛋,以此类推,x+(x-1)+(x-2)+……+1>=100,x=14 也就是说最少需要扔14次。
这个问题还有一些变种问题,比如2个鸡蛋,n层楼;k个鸡蛋,n层楼(力扣887题,大家感兴趣可以看看)