Bootstrap

ACM金牌选手整理的【LeetCode刷题顺序】

算法和数据结构 知识结构图

首先,了解算法和数据结构有哪些知识点,在学习中形成 大局观,对学习和刷题十分有帮助。

下面是我花了一天时间整理的算法和数据结构的知识结构,大家可以看看。

后面是为大家 精心挑选的LeetCode题单,并根据题目知识点的类型分好了类别,大家可以根据每个知识点,进行有针对性的刷题。

数据结构

数组&双指针

链表

队列&栈

哈希表

二叉树

二叉搜索树

算法

模拟

贪心

二分

递归&回溯

深度优先搜索DFS

宽度优先搜索BFS

分治

排序算法

Manacher算法

字典树Trie

动态规划

最短路算法

最小生成树

拓扑排序

并查集

我把学习 算法和数据结构和计算机核心的书籍 都整理好了,在学习计算机的路上肯定能用到,身边的同学都在看,现在免费送给大家,可以从下面链接领取。

书单

https://mp.weixin.qq.com/s/vtIjAQQdEik2A7NCIamSqA

下面讲一下如何刷题。

如何正确的做一道题

  • 从简入手: 先从简单暴力(时间复杂度高)的方法入手。

  • 优化: 思考如何在第一步的基础上,如何优化算法,降低时间复杂度。

  • 构思代码: 有了以上两步,我们此时应该已经有了一个正确的想法,此时我们应该构思代码,有那几部分,每部分实现什么功能,代码怎么写。而不是直接闷头去写代码,因为很多时候没想清楚,直接去写代码,会导致写了一半发现思路不对,写的代码都是错误的。

  • 写代码: 实现第三步代码。

  • (Debug): 如果我们的题目没有通过测试,应该检查代码是不是有bug、思路对不对等。

  • 总结与反思: 题目通过了,我们应该总结一下这道题考察的知识点、切入的角度、同类型的题目等,同时思考有没有更优的办法。

做到以上几点,一道题学习的就很透了,遇到同类型的题目可以举一反三啦。

最后

我是编程熊,字节跳动、旷视科技前员工、ACM金牌选手。

微信搜索【一只编程熊】,获取 学习资源、面试、内推交流群。