课程背景
优秀的软件工程师,必须具备过硬的代码开发能力。而代码开发的能力,则体现在对数据结构、算法思维、代码效率优化等知识的储备上。 数据结构算法内容不仅是计算机专业的必修课、计算机专业考研考博重点考点、算法竞赛的必备知识、技术面试高频考点,更是高级IT工程师必备技能,适用面非常广泛。 市面上,一线互联网公司对于优秀软件工程师的需求逐年增加。工程师在求职的过程中,手写代码一定是必考的环节。为了快速提高代码能力,绝大多数的候选人一定会通过公开的题库去刷题。可惜的是,初学者在没有掌握套路时,常常会被那些千变万化的代码题搞得晕头转向、不明所以。
你会学到什么?
方法论
把“烂”代码优化为高效率代码
真题演练
BAT高频面试真题详解,深入剖析解题方法和思路
面试技巧
面试现场,给你求职所需切实建议
基础知识
补充必备的数据结构基础知识,不同组合与变形轻松掌握
课程目录
模块一:代码效率优化方法论
01 | 复杂度:如何衡量程序运行的效率?
02 | 数据结构:将“昂贵”的时间复杂度转换成“廉价”的空间复杂度
模块二:数据结构基础
03 | 增删查:掌握数据处理的基本操作,以不变应万变
04 | 如何完成线性表结构下的增删查?
05 | 栈:后进先出的线性表,如何实现增删查?
06 | 队列:先进先出的线性表,如何实现增删查?
07 | 数组:如何实现基于索引的查找?
08 | 字符串:如何正确回答面试中高频考察的字符串匹配算法?
09 | 树和二叉树:分支关系与层次结构下,如何有效实现增删查?
10 | 哈希表:如何利用好高效率查找的“利器”?
模块三:算法思维基础
11 | 递归:如何利用递归求解汉诺塔问题?
12 | 分治:如何利用分治法完成数据查找?
13 | 排序:经典排序算法原理解析与优劣对比
14 | 动态规划:如何通过最优子结构,完成复杂问题求解?
模块四:面试真题 = 实践问题的“缩影”
15 | 定位问题才能更好地解决问题:开发前的复杂度分析与技术选型
16 | 真题案例(一):算法思维训练
17 | 真题案例(二):数据结构训练
18 | 真题案例(三):力扣真题训练
19 | 真题案例(四):大厂真题实战演练
特别放送:面试现场
20 | 代码之外,技术面试中你应该具备哪些软素质?
21 | 面试中如何建立全局观,快速完成优质的手写代码?
加餐
加餐 | 课后练习题详解
结束语
结束语 | 勤修内功,构建你的核心竞争力