打印

名企面试题之“谷歌那些刁难工程师的难题解答”

[复制链接]
1565|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
interview|  楼主 | 2012-10-5 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

www.eepeople.com是为全球电子/电气工程领域从业人员打造人脉互动、交友、技术交流和商务合作的平台。我们希望通过与你分享这些名企面试题,让您的职业规划道路锦上添花。
谷歌那些刁难工程师的难题解答

谷歌面试未来的工程师的题目一向是很难的。但下面这些不同于以往你看到的那些,因为它们还需要你具备一定的计算和逻辑基础。

1.一排房子涂色的问题解答

问题:我们会有一排房子,你可以理解为“N”间,其中N是整数。每个房子可以涂成红色、绿色或蓝色。每幢房子和相邻间的房子必须是不一样的,因为每种颜色的成本不同,所以还要考虑到尽可能降低成本。

答案:这个问题可以建模变成一个“动态编程”问题的解决方法,这会有效地解决大范围的搜索和优化问题。

这里有代码可以供大家参考:C[c] = H[c] + min(C[i-1][x]) x belongs to {Red, Blue, Green} x belongs to c.

2.在一个句子中实现每个单词的反向字符

问题:Convert “——— my career stack ———” to “”——— ym reerac kcats ———”.


答案:不仅仅是翻转每个字符,还需要采取一个更聪明的方式。

你可以通过翻转每个字符的方式解决这个问题,但有一个更聪明的叫递归的办法来解决它。这才是谷歌想要的结果:找到解决问题最聪明的工程师,而不仅仅是获得一个正确的解决方案。

3.找到购买和出售股票的最好时间

问题:如果你只能购买和出售相同的股票份额,找到一个买入和卖出的最佳时间。


答案:记住你在买股票之前,可以把它卖掉。这一点限制实际上完全改变了问题的结果。所以,现在你要跟踪最低值指数。下面是整体解决方案:

为了有效地解决这个问题,你需要跟踪最低值的指数。你需要寻遍并发现最低值指数达到一个新的最小值。然后,比较最低值与当前元素的差异。在买进和卖出时的差异确定是最大的差异。


4.N个硬币一排怎么选最大

问题:一排硬币由两名球员轮流各取一枚,直到拿完为止,谁拿到的金额大谁就赢了。

答案:你一定要先拿!如果你考虑奇数或者偶数的硬币,那么你至少不会输。这其实是另一种“动态编程”的问题。

5.悬空指针是什么?

问题:很简单对吗?

答案:那是毁灭性的错误。悬空的指针是一个不再分配到存储的指针。但有一个问题,这个程序在创建之后不会崩溃,而回执行很长一段时间。每个工程师都了解这些问题,因为它们最终会杀死一些最大、最复杂的服务。

6.从不公平的硬币上找到一个公平的结果

问题:我们有一个不公平的硬币,因为其正反两面结果的概率不同,如何才能得到公平的结果。

答案:抛两次硬币。有四种可能发生,如果有两个正面或者反面的结果,你应该放弃。然后留下一个正面、一个反面的结果,这才是你想要的结果。

7.在字典中找到一个单词是由两个单词组成的

问题:在字典里找到一个单词是由两个单词组成的,比如“newspaper”是由“news”和“paper”组成的。

答案:将单词分成两个部分。比如你将“newspaper”分成“newsp”和“aper”两个部分。然后你查字典看看有没有这两个单词,如果没有,那么重新对这个单词进行分隔,直到找到答案。

8.一个停车位有三分之一时间是空闲的

问题:一个停车位有时候你会发现连续9天都是停了车的,但第10天却没有停车,你怎么能判断?

答案:这是一个棘手的概率问题,所以就需要答案合乎逻辑。在概率问题上,如果一个事件已经发生,它不会对未来起到任何影响,即使已经停了9天,也不能证明第10天就一定是空闲的,所以你需要计算题目中那个三分之二的概率实际中到底有多大几率。

以下为在www.eepeople.com 已发布技术职位面试题的IT名企:
IBM、苹果、TIFacebook、施耐德、摩托罗拉、惠普、戴尔、飞利浦、微软、艾默生、奔驰、通用、CiscoIntel、西门子、索尼等等

请点击以下链接,享受你的阅读!
http://www.eepeople.com/searchEventsBySubject.action?type=12

相关帖子

沙发
interview|  楼主 | 2012-10-20 16:15 | 只看该作者
更多精彩内容详见www.eepeople.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

0

粉丝