字节大佬的「算法界 Top1 笔记」火爆 Github,短时间获上万 star
前言
为什么要学习数据结构与算法?如果你还是学生,那么这门课程是必修的,考研基本也是必考科目。工作在内卷严重的大厂中找工作数据结构与算法也是面试、笔试必备的非常重要的考察点。如果工作了数据结构和算法也是内功提升一个非常重要的体现,对于程序员来说,想要得到满意的结果,数据结构与算法是必备功力!

那么学习【数据结构算法】没有很好的资料怎么办呢?不用着急这份字节大佬的 1137 页【数据结构与算法】正适合,此份 pdf 里面还附带视频案例真的再适合不过了,好了小编废话也不多说,跟着小编步伐看下去吧。

总览目录
动态规划

由于文章幅篇的限制小编就用截图的方式给大家展示,需要完整版的小伙伴 加小助理 VX 即可免费领取

动态规划解不相交的线

动态规划+双指针代码优化
对于题中的条件是递增的数量,也就是有序的,所以我们还可以使用双指针来解决,当确
定 A[j]之后,我们在 A[j]的前面来使用两个指针来找和等于 A[j]的两个值,这里以示例一
为例看下视频

中心扩散法解决
中心扩散的思想,是找到一个字符作为回文字符串的中心,往两边扩散,来看个视频

回溯算法

剑指 Offer-字符串的排列

回溯算法解黄金矿工问题

贪心算法

贪心算法解按要求补齐数组

分发糖果(贪心算法解决)

DFS 和 BFS 相关算法

DFS 解决

DFS 和 BFS 解被围绕的区域

双指针相关

相连,串成一个环形,那么最终拿掉的 k 个元素肯定是连续的,问题就转化为求 k 个连续
元素的最大和,所以我们很容易想到的就是滑动窗口。
但这个窗口有个限制条件,就是窗口内的元素至少包含原数组首尾元素中的一个。
我们就以示例一为例来看下视频。(视频只是截图哈)

快慢指针解决环形链表

双指针求无重复字符的最长子串

二叉树相关

二叉树最大宽度

剑指 Offer-平衡二叉树

从前序与中序遍历序列构造二叉树

链表相关

反转链表

快慢指针解环形链表

栈相关

删除字符串中的所有相邻重复项


验证栈序列

版权声明: 本文为 InfoQ 作者【Geek_Yin】的原创文章。
原文链接:【http://xie.infoq.cn/article/e94e132c4911f0767742ce25f】。未经作者许可,禁止转载。
评论