拉勾教育,[重学数据结构与算法 ](https://kaiwu.lagou.com/course/courseInfo.htm?courseId=185#/content),便于学习交流。
课程地址:https://kaiwu.lagou.com/course/courseInfo.htm?courseId=185#/content
> 注意:本课程中有大量的GIF动画,由于容量较大,无法插入到文档,可以去官网查看。本地磁盘也备份有资源
#### 课程背景
优秀的软件工程师,必须具备过硬的代码开发能力。而代码开发的能力,则体现在对数据结构、算法思维、代码效率优化等知识的储备上。
目前,数据结构与算法是国内一线互联网公司面试的必考的环节。很多程序员为了快速提升代码能力,会选择通过公开的题库刷题,但初学者在没有掌握套路时,常常会被那些千变万化的代码题搞得晕头转向、不明所以。
#### 专栏解读
这门课会从方法论、基础知识、真题演练、面试技巧这四个方面,为你提供成为刷题技巧,掌握优秀工程师学习的完整路径。具体包括以下五部分内容:
第一部分:把“烂”代码优化为高效率代码的方法和路径。 代码的目标,除了完成任务,还要求把某项任务高效率地完成。
第二部分,带你补充必备的数据结构基础知识。 时间/空间复杂度的降低,要求对数据有超强的组织方式,这些能力需要你对数据结构的基础知识有极为深刻的理解,只有理解他们的优劣才能灵活选用合适的数据结构。
第三部分,这部分是你学习的重点,也就是用算法思考问题的逻辑和程序设计方法。 通过对递归、二分法、排序算法等介绍,教你一些不会改变数据的组织方式,就可以用巧妙的方法计算代码复杂度。
第四部分,侧重在 BAT 高频面试真题详解。这一部分,带你运用前面所学来深入剖析高频真题的解题方法和思路,为你的大厂面试助力。
第五部分,面试现场, 给你求职时的切实建议。很多工程师有个共性问题,那就是明明有能力,却说不出来,表现得就像是个初学者一样。这部分,我通过补充面试经验,包括现场手写代码、问题分析、面试官注重的软素质等内容,来帮你解决这个问题。
#### 课程大纲
![](https://img.kancloud.cn/92/3e/923ef83320a74323a54c239721dc1ff6_750x2686.png)
- 前言
- 开篇词
- 数据结构与算法,应该这样学!
- 模块一:代码效率优化方法论
- 01复杂度:如何衡量程序运行的效率?
- 02 数据结构:将“昂贵”的时间复杂度转换成“廉价”的空间复杂度
- 模块二:数据结构基础
- 03 增删查:掌握数据处理的基本操作,以不变应万变
- 04 如何完成线性表结构下的增删查?
- 05 栈:后进先出的线性表,如何实现增删查?
- 06 队列:先进先出的线性表,如何实现增删查?
- 07 数组:如何实现基于索引的查找?
- 08 字符串:如何正确回答面试中高频考察的字符串匹配算法?
- 09 树和二叉树:分支关系与层次结构下,如何有效实现增删查?
- 10 哈希表:如何利用好高效率查找的“利器”?
- 模块三:算法思维基础
- 11 递归:如何利用递归求解汉诺塔问题?
- 12 分治:如何利用分治法完成数据查找?
- 13 排序:经典排序算法原理解析与优劣对比
- 14 动态规划:如何通过最优子结构,完成复杂问题求解?
- 模块四:面试真题 = 实践问题的“缩影”
- 15 定位问题才能更好地解决问题:开发前的复杂度分析与技术选型
- 16 真题案例(一):算法思维训练
- 17真题案例(二):数据结构训练
- 18 真题案例(三):力扣真题训练
- 19 真题案例(四):大厂真题实战演练
- 特别放送:面试现场
- 20 代码之外,技术面试中你应该具备哪些软素质?
- 21 面试中如何建立全局观,快速完成优质的手写代码?
- 结束语
- 结束语 勤修内功,构建你的核心竞争力