北京北大青鸟学校分享:Google公司的面试问题(上)

面试是我们进入一家公司的第一步,保持良好的形象与言行举止是必不可少的。同时对于应聘技术方面的人员来说,掌握最关键的技能更是必不可少。那么在一些大公司里是怎样面试技术人员的呢?北京北大青鸟学校今天就与大家分享一下全球知名互联网公司Google的面试问题。

1.请写出一个整数乘法的算法
挑战: 这是一个相当开放性的问题,设计初衷是看看工程师是否会定义参数。
编程语言是什么?
是汇编语言吗?
是:那么你得白手起家开发出一套基本运算来。
否则的话:那就简单了,只需将数字套进去即可,因为大部分语言均支持数学运算。

2.合并两个排序链表
挑战: 这类问题是Google面试问题的一个共同趋势:找出解决问题的有效办法。
合并两条链表是一般会在链表之间发生“冲突”(因为它们各自有特定的次序,而你的合并会把次序搞乱)你必须找出一种算法快速消除那些冲突。(北京北大青鸟学校

3.给出一组区间(以秒计),让你找出重叠的部分
挑战: Google一般也会要你解决一堆数学问题。
这些设计的意图是让工程师对问题进行有效的思考,而不是仅仅知道如何对每个问题进行编码。
此处的问题会要你实现一个聪明的数学技巧。

4.如果你有n个节点的列表,对于一个有向无环图来说,最多可以有几条边?
挑战: 这是著名的数学问题旅行商(traveling salesman problem)问题的一个派生。
这是一个不要求你找出聪明的数学算法而是要你拓展思路的数学问题。
你必须在节点间画线,条件只有一个:无论你从哪里开始,永远不要回到原点

5.在Java里面,finally、final和finalize的区别是什么?
挑战: 看看你知不知道这些术语。比方说,Finalize处理的是“垃圾回收”,而Finally则是指向一个特定的错误。

6.从一大块文本中去掉重复的行
挑战: 一个基本问题,看你是不是能估算出问题是否可以在有限的时间内解决。
这样的问题通常可以采取暴力攻击手段,但却有可能永远都无法解决。(北京北大青鸟学校

7.给你一串字符,要你找出包含有给定字符集的最小窗口
挑战: 此类问题有许多解决方式,这完全取决于你选择的算法是什么。
Google要找的是能选出更快算法的工程师。(北京北大青鸟学校

北大青鸟网上报名
北大青鸟招生简章