如何处理面试过程中的算法/数据结构问题?

时间:2009-09-30 16:47:57

标签: algorithm data-structures

最近我接受了很多软件开发工程职位的采访,几乎我所面对的每一次访谈都集中在算法和数据结构上,我想知道如何面对一个未知问题并设计一个算法它使用适当的数据结构,在几分钟内跨度 - 最多5分钟。

如果有人能够对这个问题有所了解以及如何在处理算法/数据结构问题方面充分利用面试过程,我真的很感激。

感谢。

8 个答案:

答案 0 :(得分:15)

当我采访人们并问他们问题时,我不是在寻找答案(必然)。说出来 - 讨论你在想什么。

作为一名采访者,看到合乎逻辑的思路会给我带来更多的积分,而不仅仅是说“我会做......”。如果我能看到你知道如何处理这个问题,那就证明了解决问题的能力,这通常就是目标。

答案 1 :(得分:5)

提出这些问题的关键在于,作为构建软件的人,我们应该知道这些东西并能够应用它们。这项技能是一个基本组成部分,除了通过面试之外还有其他用途。

大多数大学算法课程都会讨论大多数主题。但要真正擅长他们,你可以尝试从TopCoderSPOJUVa(以及许多其他类似的网站)练习问题。

答案 2 :(得分:3)

如果您正在面试实际的工程工作,有一些设计/架构方面的内容,那么期待一些基本的算法和数据结构问题。这些是优秀程序员的基石。

我会熟悉基本数据结构和常用算法(排序,搜索,匹配)以及每个算法的固有能力,局限性和挑战。 />通常会提出一个5分钟的问题,看看你如何解决问题,而不是如何解决问题。

答案 3 :(得分:3)

Steve Yegge在Google找到一份工作非常棒blog entry,在那里他解决了你需要了解的Google面试算法以及你应该阅读的准备材料。

答案 4 :(得分:2)

这是一个非常模糊的问题,因为你问的是如何准备用数据结构编写算法。这类似于询问如何使用材料知道如何制作的东西。他们期望你制作什么样的算法?他们要求您使用或生产哪种数据结构?面试官(可能)试图了解你的想法。不幸的是,可能还有一些人正在寻找“书籍答案”。一些例子是有益的。

答案 5 :(得分:0)

您可能想看一本关于数据结构和算法的书。除了Asaph推荐的博客条目列出的那些(快速浏览表明该博客值得一读),我一直很享受How to Think About Algorithms(我是ILL得到的)。这是一本大学教科书,它给出了算法思维的一般模式以及具体的算法实例(有些练习在后面有答案)。

答案 6 :(得分:0)

这是一个非常相关的问题。

当我读取数据结构时,我会发现二进制搜索,冒泡排序,哈希,列表,地图。

然而,当我阅读面试问题和发布的答案时,他们是关于trie,哈希函数等,我从未在我找到的材料中阅读过。

准备这样的面试就像是无法找到绳子的末端,并且一次又一次地开始。

我读了,然后我想起了面试问题,我发现自己一无所知。它的无限循环。

非常沮丧。

答案 7 :(得分:0)

leetcode.com,hackerearth.com和hackerrank.com中的实践。这些都有一些不错的算法,数据结构教程。

相关问题