北京,百度

10月 17th, 2010 2,626 留下评论 阅读评论

得知保研后,就找了徐串学长内推去百度实习。eBay实习了刚好三个月,主要觉得继续呆下去技术上实在不能学到什么了,意义也不大,上海也几乎都玩转了,换个环境是个很不错的想法。

10月8日,电话面试。搜索研发部,下午3点半到4点半,1个小时,4题算法数据结构体,然后是一些项目经验的介绍和分析。面试前,面试官还详细介绍了一下组内的状况,用的技术之类的情况,听的我一愣一愣,这个倒是第一次没有碰到过的。印象最深的就是百度使用C++和Python,555,都不熟…

  • 前2题都比较简单,基础题,就不说了
  • 一堆String,要求所有字符都相同的分到一个组内,比如face和cafe,都包含a c e f4个字符

听到这个问题就感觉悲剧了,直接说好像是微软的那本《编程之美》里面的题目,面试官也笑了。一下子记不起来方法了,还是自己想吧。我的方法是,按照String长度和字符ASC值的和划分N个小组,然后在小组内,用O(n2)的比较得出结果。面试官继续问我具体怎么比较2个字符串呢?这个问题没考虑过,一个一个字符地比较过去效率太低,是O(m2)的,m为字符串长度,想到把字符串串内排序,降到O(nlgn)。

  • 有2个桶A、B,容量不一样。三排金币X、Y、Z,每个金币体积为1,但价值不一样,且X只能被放到A中,Z只能被放到B中,Y两边都可以,求A B桶的价值最大的算法

一开始理解错题意,还以为是背包问题,没注意到金币体积都是1的条件,瞎搞了一段时间。只知道先把X、Y、Z排序,然后就是遍历了,O(A*B),想不出什么好办法。这题算是没有做出来吧。面试官给的答案是:排序后,每将X、Z的金币放入A和B,都计算Y中可以放入的数量的价值总和和X、Z可以放入总和的比较,哪个优就放哪个。也听得迷迷糊糊,大概是这个意思,没具体搞清楚,呵呵。

接下来是项目经验,先讲了淘宝开源网店程序的二次开发,然后是讲了关于eBay的实习做的事,就结束了。整个电话面试过程气氛挺融洽,面试官也很nice,居然也是浙大的,01届的学长,哈哈。

10月12日正式拿到了百度的实习offer,10月27日入职,这是第二次拿到实习offer了,2次的offer居然还是基本一模一样,囧…

继魔都暑期三月之后,即将展开帝都寒冬三月之旅,但求我这个怕冷的不要冻死在北京的街头…

——————————————分割线:百度校园招聘笔试——————————————–

今天还去百度校园招聘的笔试了,虽然对我已经没有什么意义,但是一次不错的机会。抱着打酱油的心态去了,果然很轻松,题目也不难,本开打算看个题15分钟就出来的,因为下午有SCDA七周年庆要赶着去。不过题目做着做着,还是想看看自己有多少水平,于是走正规途径,1个小时做完,基本没检查也没再继续优化,就交卷了。估计全场第一个完成笔试的,哈哈,好爽! :mrgreen:

——————————————分割线:SCDA七周年庆————————————————

SCDA七周年了,生日快乐!下午的庆祝party倒是没怎么参与,就和大家聊天了。晚上,老朋友一起在名人名家吃饭,各种特价菜给力!借用沛沛的话“还是和SCDA的朋友吃饭来的舒服”! :wink:

Categories: Life in intern 标签:, , ,
  1. RainFlying | #沙发
    10月 17th, 2010 23:17

    yyyyyyyyyyyyyyyyyyyyyyyyyyyym 百度大牛

  2. 10月 17th, 2010 18:43

    第一题,如果都是小写字母的话,有更好的方法,一共26个字母,那么算作26个位,比如
    a = 1
    b = 10
    c = 100
    这样,然后算每个单词的位权和,是一个最大2^27-1的整数,刚好放在int里。拥有相同位权和的字符串分在一组。
    如果是大小写字母和数字,26*2+10=62个位,可以用同样方法以long long解决。

    你就面试了一次么?太牛了啊。

    • 仰慕小强,对于字符集比较少这个方法的确很好,相当于用bit来对应所有字符。不过如果扩展到一般字符串的话,就不行了。我找了人内推,加上现在也不是实习热期,估计实习生都快走完了,所以要求特别松吧

      • 10月 17th, 2010 22:25

        @ stariy
        我只是跟你讨论这个题目,你的技术水平显然是过硬的啦。
        其实只要字符集不是很大都可以用BigInteger解决。

        • 恩,不过百度都用Linux&C++,我现在好担心啊,都不太熟,估计得适应好久才能真正开始干活。不过应该能学到很多东西~