硬核!字节算法大佬耗时120天整理的1213页数据结构与算法笔记
前言
为什么要学习数据结构与算法?如果你还是学生,那么这门课程是必修的,考研基本也是必考科目。工作在内卷严重的大厂中找工作数据结构与算法也是面试、笔试必备的非常重要的考察点。如果工作了数据结构和算法也是内功提升一个非常重要的体现,对于程序员来说,想要得到满意的结果,数据结构与算法是必备功力!
那么学习【数据结构算法】没有很好的资料怎么办呢?不用着急这份1137页【数据结构与算法】正适合,此份pdf里面还附带视频案例真的再适合不过了,好了小编废话也不多说,跟着小编步伐看下去吧。
动态规划
限于文章篇幅原因,只能以截图的形式展示部分内容,有需要的小伙伴可以
动态规划解不相交的线
动态规划+双指针代码优化
对于题中的条件是递增的数量,也就是有序的,所以我们还可以使用双指针来解决,当确
定A[j]之后,我们在A[j]的前面来使用两个指针来找和等于A[j]的两个值,这里以示例一
为例看下视频
中心扩散法解决
中心扩散的思想,是找到一个字符作为回文字符串的中心,往两边扩散,来看个视频
回溯算法
剑指 Offer-字符串的排列
回溯算法解黄金矿工问题
贪心算法
贪心算法解按要求补齐数组
分发糖果(贪心算法解决)
DFS和BFS相关算法
DFS解决
DFS和BFS解被围绕的区域
双指针相关
相连,串成一个环形,那么最终拿掉的k个元素肯定是连续的,问题就转化为求k个连续
元素的最大和,所以我们很容易想到的就是滑动窗口。
但这个窗口有个限制条件,就是窗口内的元素至少包含原数组首尾元素中的一个。
我们就以示例一为例来看下视频。(视频只是截图哈)
快慢指针解决环形链表
双指针求无重复字符的最长子串
二叉树相关
二叉树最大宽度
剑指 Offer-平衡二叉树
从前序与中序遍历序列构造二叉树
链表相关
反转链表
快慢指针解环形链表
栈相关
删除字符串中的所有相邻重复项
验证栈序列
总结
限于文章篇幅原因,只能展示到这里了,有需要的小伙伴