有道笔试

1. 有4个人要过河,但是只有一独木桥,独木桥可容1~2人同时通过。现在是黑天,过独木桥需要手电筒照明,他们现在只有1个手电筒(1个手电筒可供两人一起过河用)。4个人走路速度不一,通过独木桥需要的时间分别为4,9,10,13. 问:4人全部通过独木桥需要多少时间(两人一起过桥,过桥时间是两人过桥时间中较大的)?

9+4+10+4+13=40

2. 电视节目“猜价格”:价格是一[1,99]之间的整数。甲、乙轮流报价,先报出正确价格的人胜出。每次报价,主持人将会提示偏高/偏低/正确。假设两人都采用最大取胜概率的策略进行猜测,问:甲先猜时,获胜概率是多大?

TODO

3. 给出一颗二叉树的中序、后序遍历序列,输出前序遍历序列。
方法签名:void tree(int* inorder, int* postorder, int n);
说明:inorder和postorder中分别存储树的中序、后序遍历序列输出的节点编号,节点编号唯一。n为序列长度。

TODO

扩展问题:根据中序、前序求后序;根据前序/后序求中序?

4. 给一个长度为n数组a[0..n-1]. a中数字取值范围为[-100,100]. 输入一个正整数m,求0≤i≤j≤n-1,使得a[i],a[i+1]...a[j]包含[-m,m]之间的所有整数,且序列长度最小(即j-i+1最小),输出子序列长度。序列不存在时输出n+1.
示例:
a={0,-1,2,1,3,4,-2,-1,0,1}(n=10)
输入m=1时,a[0..3]和a[7..9]均包含[-1,1],但a[7..9]较短,因此输出3.
输入m=2时,a[0..6]和a[2..9]均包含[-2,2],但a[0..6]较短,因此输出7.
输入m=3时,不存在这样a的子序列,输出11.

TODO

5. 立方体构造:现有足量的n种1x1x1小立方体,每种分别带有1,2...n的标号。使用这些小立方体构造大立方体c,使得对于任意x,y∈[1,n](x≠y),c中存在立方体cx,cy,满足:
1) cx的标号为x,cy的标号为y
2) cx和cy相邻(相邻的定义:如果两个立方体a,b有一个共同面,则a,b相邻)
例如对于n=4,可以满足条件的其中两个c可以是:
或者(之前的图透视有点问题,已修正)
设计一个构造策略:给定n,构造c,并且使用尽可能少的方块。

TODO

原文地址:https://www.cnblogs.com/mdyang/p/2074829.html