【发布时间】:2011-04-27 07:47:32
【问题描述】:
我从事 RTOS 和 Linux 驱动程序开发已经有一段时间了。现在我正在半导体公司面试,但未能回答有关字符串算法以及时间和空间复杂性的问题。因为我有电子背景,所以我没有学过离散数学和算法。
我该如何克服这个差距?
【问题讨论】:
标签: algorithm string asymptotic-complexity
我从事 RTOS 和 Linux 驱动程序开发已经有一段时间了。现在我正在半导体公司面试,但未能回答有关字符串算法以及时间和空间复杂性的问题。因为我有电子背景,所以我没有学过离散数学和算法。
我该如何克服这个差距?
【问题讨论】:
标签: algorithm string asymptotic-complexity
您需要复习数据结构和算法课程的大部分课程材料。为了回答这些类型的面试问题,您通常不需要离散数学中涵盖的材料。
如果您想深入了解(并真正理解该主题),我建议您实际阅读课程材料并听讲座。由于加州大学伯克利分校在网上发布了他们的一些讲座,您可以在这里观看这样的课程(有一位优秀的讲师):
http://webcast.berkeley.edu/course_details.php?seriesid=1906978343
特别注意大 O 表示法的讲座,以及排序和搜索算法。这些往往是人们在面试时询问的内容。
如果你懒得花 30 个小时来观看讲座和更多时间解决问题,你至少应该查阅课程使用的书:
Goodrich and Tamassia's Data Structures and Algorithms in Java
【讨论】:
我建议您介绍算法(CLRS)和算法和复杂性算法设计手册(steven skienna),以了解算法和复杂性。除此之外,还有很多关于算法和复杂性的好教程coder(网站:topcoder.com/tc),你也可以去看看。
【讨论】:
从简单的开始,例如:Algorithms in a Nutshell(面试问题的良好起点)
或Algorithms For Interviews 当你觉得你知道上面的书时,你可以考虑深入了解算法。
【讨论】:
Introduction to Algorithms 是一本很棒的算法书(也恰好在伟大的influential book question 中排名第六)
【讨论】: