面试Google工程师必问的15道面试题

2015年01月22日 10:54 来源:36氪 作者:boxi 我要评论(0)

标签:Google(56592)工程师(67194)

  1.请写出一个整数乘法的算法

  

  挑战:

  这是一个相当开放性的问题,设计初衷是看看工程师是否会定义参数编程语言是什么?是汇编语言吗?

  是:那么你得白手起家开发出一套基本运算来。

  否则的话:那就简单了,只需将数字套进去即可,因为大部分语言均支持数学运算。

  2.合并两个排序链表

  

  挑战:

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

  3.给出一组区间(以秒计),让你找出重叠的部分

  

  挑战: Google 一般也会要你解决一堆数学问题。这些设计的意图是让工程师对问题进行有效的思考,而不是仅仅知道如何对每个问题进行编码。此处的问题会要你实现一个聪明的数学技巧。

  4.如果你有n个节点的列表,对于一个有向无环图来说,最多可以有几条边?

  

  挑战:

  这是著名的数学问题旅行商(traveling salesman problem)问题的一个派生。这是一个不要求你找出聪明的数学算法而是要你拓展思路的数学问题。你必须在节点间画线,条件只有一个:无论你从哪里开始,永远不要回到原点

  5.在Java里面,finally、final和finalize的区别是什么?

  

  挑战:

  看看你知不知道这些术语。比方说,Finalize 处理的是“垃圾回收”,而 Finally 则是指向一个特定的错误。

  6.从一大块文本中去掉重复的行

  

  挑战:

  一个基本问题,看你是不是能估算出问题是否可以在有限的时间内解决。这样的问题通常可以采取暴力攻击手段,但却有可能永远都无法解决。

  7.给你一串字符,要你找出包含有给定字符集的最小窗口

  

  挑战:

  此类问题有许多解决方式,这完全取决于你选择的算法是什么。Google 要找的是能选出更快算法的工程师。

12下一页全文

本文导航