想挑战吗?谷歌“程序猿”的面试考题
泡泡网资讯频道2月2日 谷歌,是不是作为“程序猿”的你理想中的一家公司呢?如果获得了一次面试的机会,将有什么样的问题在等待着你?让我们看看Glassdoor.com上收集的面试题吧。
一,写出整数乘法的算法。
挑战:这是个开放性的问题,工程师可以自由发挥。用程序集语言吗?如果是,你将从基本操作开始;不然的话,其实大多数语言都支持算术运算。
二,合并两个已排序的链接列表。
挑战:这是找到解决问题有效途径类的面试问题。合并两个链接列表时,往往在列表间出现“冲突”,因为他们通常在顺序等方面设有“陷阱”,而你要做的就是快速解决这些“冲突”。
三,给定一组时间间隔(以秒为单位),查找重叠的一组。
挑战:谷歌通常会出解决数学问题的题目。这些题的关键是考察设计工程师能否高效思考问题,而不仅仅是知道如何编写代码。你需要高效地提供一个数学技巧。
四,给出N个节点,计算出有向无环图边界最大的数字。
挑战:这是著名的销售员训练的演变问题。重点在于绘制线条间的节点,但不给出具体的路径,不管从哪里开始,最终要回到原来的节点。
五,在Java中区别finally, final和finalize。
挑战:给每个词条以特定的含义。如finalize意味着“垃圾回收”,那么finally可能就意味着某种错误。
六,从大文本中删除重复行。
挑战:本质上就是在有限时间内解决问题。你可以用蛮力解决,但终究需要提出解决方案。
七,给出字符串,找到包含特定字符的最小窗口。
挑战:方法很多,就看你选择哪一种。
八,编程计算,让字符串旋转。
挑战:测试你是否理解这个“字符串”,和“旋转”的比喻。通常,字符串指的是字母、单词或印制的东西,也可以是二维矩阵,或其他对象。如果你可以让他们旋转,首先你必须检查现有的字符串。
九,旧金山能装进多少气球?
挑战:问题的关键是如何设置“边界条件”。利用旧金山的里程等条件限定,将简化这一问题。
十,什么是sticky bit,为什么使用它?
挑战:这是一个系统管理员该知道的术语,有关设置和权限。谷歌真正要问的是,除了编码,你是不是也了解一些管理要点。
十一,给出一组已知非常简短,但范围未知的数值,如何查找中位数值?
挑战:要求你精通离散数学的技巧,这可不是个容易的题。
十二,给予一组时间间隔,查找交叉量最大的时间间隔。
挑战:为有效的运行算法,谷歌是在要求你确保你知道正确的途径,并有效的忽略干扰。
十三,从一到一百的无序整数阵列,任取整数,发现整数。
挑战:就是用几行代码解决一个数学问题,他测试的是你所使用的技巧,并用代码实现这一过程。
十四,数独解决方案
挑战:要求你提出一个想法,并快速解决这一数学游戏。
十五,给出某只股票的每日价值,找到买卖交易的最大损失点。
挑战:这道题的要求是融合一切。检查边界条件(如挑出股价的反复),然后有效计算最大摆动。虽然蛮力计算也有可能,但面试的时候可行不通呀。
这些就是到谷歌面试“程序猿”所要面对的问题(当然只是冰山一角),你还能搞定吗?
(本文译自BusinessInsider)■
● 每日科技酷玩微博:http://t.sina.com.cn/kjkw
● 更多资讯可以访问:http://news.pcpop.com
新闻推荐:
图解硅谷停车场:保时捷不过是街车!
iPad 3那些传言:更薄更快更小更便宜
纯卖萌!把iPhone/iPad变成孩童的玩具
三星新手机Galaxy S Advance规格曝光
上市临近!CDMA版iPhone4S通过3C认证
微软WP将支持120种语言 未来支持C++
联想ThinkPad平板Q2升级至Android4.0<