既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
(2)尽量最优解。对于很多题,如果不看时间复杂度和空间复杂度,单单只是 AC,那还是很容易的,但是一提交,可能只打败了百分之几的人,显然我们不能只满足于这种代码。当做一道题时,一开始可以先暴力做,但后面还得想想该如何优化,想不出也没事,可以讨论区找空间/时间复杂度更低的代码,或者直接搜索引擎搜索,一般都能搜到别人的代码。之后跟着别人的代码,自己再实现一波,尽可能把最优解的代码实现起来。当你入门之后,更多的是要总结方法,寻找高效率的代码。
三、基础数据结构知识汇总
在这里把基础数据结构知识形成列表列举出来,具体详细介绍期待后续分享~
1、时间复杂度
2、空间复杂度
一般最先接触的就是时间复杂度和空间复杂度的学习了,这两个概念以及如何计算,是必须学的,也是必须最先学的,主要有最大复杂度、平均复杂度等。
3、线性表
- 列表(必学)
- 链表(必学)
- 跳跃表(知道原理,应用,最后自己实现一遍)
- 并查集(建议结合刷题学习)
链表、列表必学,重点是链表。
4、栈与队列
- 栈(必学)
- 队列(必学)
- 优先队列、堆(必学)
- 多级反馈队列(原理与应用)
5、树
- 二叉树:各种遍历(递归与非递归)(必学)
- 哈夫曼树与编码(原理与应用)
- AVL树(必学)
- B 树与 B+ 树(原理与应用)
- 前缀树(原理与应用)
- 红黑树(原理与应用)
- 线段树(原理与应用)
树相关是知识比较多,建议看书,可以看《算法第四版》,不过刷题前对于树的知识也不需要准备太多,先把最基本的二叉树学了就可以。
四、基础算法知识汇总
在这里把基础算法知识形成列表列举出来,具体详细介绍期待后续分享~
1、递归
- 斐波那锲数列
- 抢5游戏
- 上台阶问题
- 汉诺塔
- 树和图的遍历
2、多指针算法
- 链表反转
- 双指针——快慢指针
- 双指针——左右指针
3、动态规划
- 最长递增子序列
- 找零钱
- 0-1背包问题
4、回溯
- 全排列问题
- N皇后问题
5、滑动窗口
- 最小覆盖子串
6、分治思想
- 归并排序
- 快速排序
五、算法学习相关资料推荐
1.数据结构与算法基础
相关书籍有《算法导论》、《算法第四版》、《算法竞赛入门经典》等,如果觉得阅读书籍较为枯燥,效率较低,建议在复习数据结构与算法基础知识可以阅读LeetCode中的Leetbook,Leetbook 是 Leetcode官方提供的课程,它的好处是把算法归类为各个章节,而且大部分章节都是免费的。
2.专项刷题路线资料
推荐网站代码随想录: https://www.programmercarl.com/
《代码随想录》是Carl,一位哈工大师兄精心整理,帮助需要刷算法的同学少走弯路!
一个正确的刷题顺序对算法学习是非常重要的!该站大概按照如下专题来刷:数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,都是先从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目。
3.算法课程视频资料
对于算法相关的免费课程推荐B站最火的左程云的算法课程:算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程) ,左神专注于算法指导,因此他的课程质量还是比较高的。
另外,左程云编写的算法书籍《程序员代码面试指南》也堪称“神书”!书中对 IT 名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现,选取将近 300 道真实出现过的经典代码面试题,"刷”完这书,就是"题王”!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!