程序员如何准备面试中的算法

备战面试中算法的五个步骤

对于立志进一线互联网公司,同时不满足于一辈子干纯业务应用开发,希望在后端做点事情的同学来说,备战面试中的算法,分为哪几个步骤呢?如下:

1、掌握一门编程语言

首先你得确保你已掌握好一门编程语言:

C的话,推荐DennisM.RitchieBrianW.Kernighan合著的《C程序设计语言》,和《C和指针》;

C++则推荐《C++Primer》,《深度探索C++对象模型》,《EffectiveC++》;

Java推荐《ThinkinginJava》,《CoreJava》,《EffictiveJava》,《深入理解Java虚拟机》。

掌握一门语言并不容易,不是翻完一两本书即可了事,语言的细枝末节需要在平日不断的编程练习中加以熟练。

2、过一遍微软面试题系列

微软面试题系列,见过的题目不可谓不多,但不管题目怎般变化,依然是那些常见的题型和考察点,当然,不考察任何知识点,纯粹考察编程能力的题目也屡见不鲜。故不管面试题千变万化,始终不离两点:①看你基本知识点的掌握情况;②编程基本功。

而当你看了一遍微软面试题之后(不要求做完),你自会意识到:数据结构和算法在笔试面试中的重要性。---后面每日一题Luke老师会选取微软面试题系列

3、苦补数据结构基础

如果学数据结构,可以看我们在大学里学的任一本数据结构教材都行,如果你觉得实在不够上档次,那么可以再看看《STL源码剖析》。

然后,你会发现:大部分的面试题都在围绕一个点:基于各种数据结构上的增删改查。如字符串的查找翻转,链表的查找遍历合并删除,树和图的查找遍历,后来为了更好的查找,我们想到了排序,排序仍然不够,我们有了贪心、动态规划,再后来东西多了,于是有了海量数据处理,资源有限导致人们彼此竞争,出现了博弈组合概率。

4、看算法导论

《算法导论》上的前大部分的章节都在阐述一些经典常用的数据结构和典型算法(如二分查找,快速排序、Hash表),以及一些高级数据结构(诸如红黑树、B树),如果你已经学完了一本数据结构教材,那么建议你着重看贪心、动态规划、图论等内容,这3个议题每一个议题都大有题目可出。同时,熟悉常用算法的时间复杂度。

如果算法导论看不懂,你可以参看本博客。







































北京中科医院电话
北京治疗白癜风的医院



转载请注明:http://www.xxcyfilter.com/zyxz/1388.html