我一直在研究RTOS和Linux驱动程序开发。现在我在半导体公司面试,没有回答有关字符串算法,时间和空间复杂性的问题。我没有研究离散数学和算法,因为我有电子背景。
我如何克服这个差距?
答案 0 :(得分:5)
从简单的事情开始:Algorithms in a Nutshell(面试的好起点,如问题)
或Algorithms For Interviews 如果您对上述书籍有所了解,那么您可以考虑深入了解算法。
答案 1 :(得分:3)
您需要查看数据结构和算法类的大部分课程资料。为了回答这些类型的面试问题,您通常不需要离散数学中涵盖的材料。
如果你想要走很远的路(并且实际上理解这个话题),我建议你实际上通过课程材料并听取讲座。由于加州大学伯克利分校在网上发布了一些讲座,你可以在这里观看这样一堂课(有一位优秀的讲师):
http://webcast.berkeley.edu/course_details.php?seriesid=1906978343
特别注意Big O表示法的讲座,以及排序和搜索算法。那些往往是人们询问面试的部分。
如果你真的不愿意花30个小时观看讲座,还有更多人在解决这些问题,你至少应该参考课程使用的那本书:
Goodrich and Tamassia's Data Structures and Algorithms in Java
答案 2 :(得分:2)
Introduction to Algorithms是一本很棒的算法书(也恰好在伟大的influential book question上排名第6位)
答案 3 :(得分:1)
我建议您使用算法简介(通过CLRS)和算法设计手册(由steven skienna)来理解算法和复杂性。除此之外,还有很多关于算法和复杂性的优秀教程。编码器(site:topcoder.com/tc),您也可以查看它们。