我从事 RTOS 和 Linux 驱动程序开发已经有一段时间了。现在我正在半导体公司面试,但未能回答有关字符串算法以及时间和空间复杂性的问题。因为我有电子背景,所以我没有学习离散数学和算法。
我怎样才能克服这个差距?
我从事 RTOS 和 Linux 驱动程序开发已经有一段时间了。现在我正在半导体公司面试,但未能回答有关字符串算法以及时间和空间复杂性的问题。因为我有电子背景,所以我没有学习离散数学和算法。
我怎样才能克服这个差距?
您需要复习数据结构和算法课程的大部分课程材料。为了回答这些类型的面试问题,您通常不需要离散数学中涵盖的材料。
如果您想深入了解(并真正理解该主题),我建议您实际阅读课程材料并听讲座。由于加州大学伯克利分校在网上发布了他们的一些讲座,你可以在这里观看这样的课程(有一位优秀的讲师):
http://webcast.berkeley.edu/course_details.php?seriesid=1906978343
特别注意关于大 O 符号的讲座,以及排序和搜索算法。这些往往是人们在面试时询问的内容。
如果你懒得花 30 个小时看讲座和更多的时间来解决问题,你至少应该参考课程使用的书:
Introduction to Algorithms是一本很棒的算法书籍(也恰好在最有影响力的书籍问题中排名第 6 )
我建议您介绍算法(CLRS)和算法和复杂性算法设计手册(steven skienna),以了解算法和复杂性。除此之外,顶级编码器(网站)上有很多关于算法和复杂性的好教程: topcoder.com/tc ) ,你也可以查看它们。