2016百度实习一面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016百度实习一面相关的知识,希望对你有一定的参考价值。

总共有四道题,其他三道感觉比较简单,第一题记录单词个数,但是单词数量比较多,所以用map搞。第二题遍历树,得出树中每个节点的深度。第三题求单个lca。

最难的一题是一道思维题,给出n个数(n<=10^6),如果有两个数a,b,满足2*a<=b,则可以把数a装入数b中,每个数最多只能装一个数,问最多有多少个数可以被装?

举个荔枝:

假设现在n=5

这5个数为:4 1 2 8 9

我们先排个序得1 2 4 8 9

然后1->2,4->8则最多有两个数被装人。

这时很容易想到几种贪心策略,比如排序后,从最小的开始贪心,或从最大的开始贪心。

这里给出一组数据说明这种贪心是错误的。

n=4

1 2 4 7

n=4

3 5 10 20

然后来看下这个问题到底应该怎么去想。

首先,要找到一个关键性质,在排序之后,一定存在某个数x,使得最优解中被装入数在x的左边,装入数在x的右边。

接下来看图。

技术分享

 

以上是关于2016百度实习一面的主要内容,如果未能解决你的问题,请参考以下文章

百度测试实习小一面

百度大搜 rank实习一面

百度nlp实习生转岗 一面

2016BAT+华为+滴滴+搜狗Android开发岗面试问题整理

2016BAT+华为+滴滴+搜狗Android开发岗面试问题整理

百度面试——机器学习实习