最近我参加了相当多的软件开发工程职位的面试,我所面对的几乎每个面试都集中在算法和数据结构上,我想知道怎么可能面对一个未知的问题,并使用适当的数据结构为它设计一个算法,在跨度上也是如此--最多5分钟。
如果有人能对这个问题有所了解,以及如何在处理算法/数据结构问题方面充分利用面试过程,我将不胜感激。
谢谢。
发布于 2009-09-30 16:51:53
当我面试别人,问他们问题时,我并不是在寻找答案(必然)。把它说出来--讨论你的想法。
作为一名面试官,看到逻辑上的思路会比仅仅说“我愿意……”得到更多的分数。如果我能看到你知道如何解决问题,那就证明了解决问题的能力,这通常是目标。
发布于 2009-09-30 17:24:57
问这些问题的要点是,作为构建软件的人,我们应该知道这些东西,并能够应用它们。这项技能是一个基本的组成部分,它的用途不仅仅是通过面试。
大多数主题都是在任何大学的算法课程中讨论的。但要真正擅长它们,你可以尝试练习TopCoder,SPOJ和UVa (以及许多其他类似的网站)的问题。
发布于 2009-09-30 16:53:56
如果你正在面试一个实际的工程工作,有一些设计/架构方面的问题,可以期待一些基本的算法和数据结构问题。这些是一个好的程序员的基础。
我会熟悉基本的数据结构和常见的算法(排序、搜索、匹配),以及每种算法的固有功能、局限性和挑战。
通常,一个5分钟的问题只是为了看看你是如何解决问题的,而不是你如何解决它。
https://stackoverflow.com/questions/1499359
复制相似问题