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