本书专攻算法刷题,训练算法思维,应对算法笔试。注重用套路和框架思维解决问题,以不变应万变。
第1章列举几个最常见的算法类型以及对应的解题框架思路,包括动态规划、回溯、广度优先搜索及双指针、滑动窗口等算法技巧。
第2章用动态规划的通用思路框架解决十几道经典的动态规划问题,例如,正则表达式、背包问题,同时还介绍了如何写状态转移方程,如何进行状态压缩等技巧。
第3章介绍了数据结构相关的算法,例如,二叉树相关的题目解法,也包括LRU、LFU这种面试常考的算法原理。
第4章介绍回溯算法、广度优先算法等核心套路在算法题中的运用,巩固对算法框架的理解。
第5章讲解了一些高频题目,每道题目可能会结合多种算法思路,也可能有多种解法,读完这一章,你就可以独自遨游题海啦。
GitHub 68.8k star的硬核算法教程,labuladong带你手撕力扣算法题,搞定BAT等大厂Offer,@stormzhang|《漫画算法》作者@程序员小灰盛赞
前言
数据结构和算法在计算机知识体系中有着举足轻重的作用,这块知识也有非常经典的教材供我们学习。但是,我们刷的算法题往往会在经典的算法思想之上套层“皮”,所以很容易让人产生一种感觉:数据结构和算法我以前学得挺好的,为啥这些算法题我完全没思路呢?
面对这种疑惑,有人可能会摆出好几本与算法相关的大部头,建议你去进修。
有些书确实很经典,但我觉得咱应该搞清楚自己的目的是什么。如果你是学生,对算法有浓厚的兴趣,甚至说以后准备搞这方面的研究,那我觉得你可以去啃一啃大部头;但事实是,大部分人(包括我)学习算法是为了应对考试,这种情况下去啃大部头显然就得不偿失了,更高效的方法是直接刷题。
但是,刷题也是有技巧的,刷题平台上动辄几千道题,难道你要全刷完吗?最高效的刷题方式是边刷边归纳总结,抽象出每种题型的套路框架,以不变应万变。
我个人还是挺喜欢刷题的,经过长时间的积累、总结,沉淀出了这本书,希望能给你带来思路上的启发和指导。
本书特色
本书会先帮你抽象总结出框架套路,然后通过题目实践,这应该是最高效的学习方式。即学即用,立即反馈,相信本书会让你一读就停不下来。
本书定位
这不是一本数据结构和算法的入门书,而是一本刷算法题的参考书。
本书的目的是手把手带你刷题,每看完一节内容,就可以去刷几道题,知其然,也知其所以然。