【面经】百度商务搜索部一二面面经

上上周找同学帮忙内推了百度商务搜索部的机器学习岗,上周三的时候接到百度HR的电话,约好了这周二电话面试,而且邮件里特意说了到时候会在网页上写代码,要准备好电脑

下午2点,准备好电脑,面试官的电话如约而至。

先是简单的自我介绍后,面试官就开始出题:

第一题是 单链表反转,这个比较简单,很快写了出来

第二题是输出一个字符串的所有子集,例如 输入 abc , 输出a, b, c ,ab, ac, bc, abc,且每个字符串里的字符和总的字符串集合不能有重复。
我一开始用深搜做的,在去重的时候用set,面试官问有没有更好的方法,我想了半天没想出来,他说可以用Trie 树来做,想了想确实这样好很多。
 
第三题是两个栈实现一个队列,也比较简单,很快写完。面试官又问有没有能优化的地方,没想出来。
 
第四题是有N个数,每个数各不相同,且范围是[1, N+1] ,找出缺失的那个数。
  我的方法: 先排序,然后找到和下标不同的那个数,那个下标就是缺失的数 复杂度O(nlogn)。 面试官肯定不会满足,就问有什么更好的方法。
  我想了一下说 [1, N+1] 求和,然后N个数求和,相减就得到缺失的那个数
  然后面试官又问,那如果有N-1个数,也就是有两个数缺失,怎么找到这两个数?第一反应还是先排序,再查找,但这肯定不是面试官想要的,
  想了半天,总算想出来了, 先对[1,N+1] 先求和 ,求积的结果, 再对 N个数求和,求积, 求和结果相减,求积结果相除,这样就得到了缺失的那两个数的和和积。
由于是自然数,那么很容易就能找到这两个数是什么。
 
第五题是 N+1个字符串,有N个不同,有一对字符串是相同的,怎么找出这对相同的字符串?
 第一反应,hash表,面试官说如果内存不够呢。 那就按每一位进行hash,不同的字符串最后一定会被分到不同的组里,只有一个组里会有两个字符串,就是那对相同的字符串。面试官听了表示认可,这时候时间差不多到了,就说一面先到这里,等会会通知二面。
 
十几分钟后,二面面试官也打来了电话,二面面试官是个妹子,上来先让我介绍了一下研究生期间的经历。然后开始问,挑一个最熟悉的机器学习算法,假设她什么不懂,讲给她听,我讲了K-means,讲完后她问K-means有什么缺陷,是否一定收敛? 这些都答上来了。她又问除了K-means还有什么聚类算法? 我就又介绍了一下层次聚类法,这个用过很多次,所以比较熟。她又问,假设现在做了一个模型,发现效果不好,怎么改进?这个我一开始想复杂了,以为会问具体的改进方法,但是因为面试官没说具体的什么模型,所以只要宽泛的说一下即可。我就说了三点:1是调参数,2是加数据,3是换模型, 感觉她听了也比较认可。
然后她又问,加入现在正负样本分布不均匀,应该怎么办? 这其实是一个难题,我能想到的就是对少的那部分加样本,或者多的那部分里取出一部分出来与负样本一起训练。这个问题答的不是很好,因为以前没太遇到过这种问题,所以没考虑过。
 
最后她问了一道算法题,这个是leetcode上的原题,对于一个二叉树,每个结点有三个指针,除了左右子节点指针外还有一个指向右边的结点的指针。现在给定一个二叉树,每个结点的右指针为空,让你把每一层的结点都连起来。这个不太难,不过我代码写的有点多,花了很长时间。写完之后她说她结束后会细看。
到这里二面也结束了,总的来说百度的面试还是很注重代码能力的,之前面腾讯阿里的时候都没怎么让写代码,这也和百度重视技术有关吧。
希望后面还能接到三面的电话。
posted on 2015-08-25 23:36 moonfighting 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/moonfighting/p/4759035.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值