算法与数据结构
文章平均质量分 88
学习算法与数据结构,分享工作中用到与解除到的优秀算法与数据结构
tataCrayon|啾啾
Java 开发|正在深入大模型
掘金:https://juejin.cn/user/519421715817767/posts
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法,蒜鸟蒜鸟-P5-理解“堆、图”
【摘要】本文介绍了堆和图两种重要数据结构及其应用。堆的核心功能是高效获取极值(O(1)时间),通过小顶堆解决LeetCode 215题(第K大元素)展示了其优势。图的邻接表表示和遍历方法(DFS/BFS)被详细说明,并以LeetCode 200题(岛屿数量)为例,阐述了如何通过DFS标记连通分量来统计岛屿数量,重点强调了visited集合对避免环路无限递归的关键作用。文章通过具体代码示例,直观呈现了数据结构的实现与应用逻辑。原创 2025-09-18 16:46:45 · 1087 阅读 · 0 评论 -
算法,蒜鸟蒜鸟-P4-理解“动态规划-DP”
本文介绍了动态规划(DP)的基本概念及其在解决重叠子问题中的应用,并以LeetCode 70题“爬楼梯”为例详细解析了DP的五步解题法:定义dp数组含义、推导递推公式、初始化、确定遍历顺序和获取最终答案。通过优化空间复杂度,展示了如何用滚动数组将空间复杂度降至O(1)。文章还推荐了其他DP练习题供巩固学习。原创 2025-09-16 09:00:00 · 830 阅读 · 0 评论 -
算法,蒜鸟蒜鸟-P3-理解“递归、回溯与分治”
摘要 本文深入探讨回溯算法(Backtracking)的核心思想与实现模式,通过经典例题展示其应用场景和优化技巧。主要内容包括: 回溯本质:基于DFS的试错搜索,通过“选择->递归->撤销选择”三步走结构实现,避免无效路径(剪枝)。 全排列问题(LeetCode 46):维护可选列表(used[]数组)、路径(path列表)和结束条件(路径长度等于输入数组长度),完整代码示例演示回溯框架。 组合问题(LeetCode 77):通过强制从小到大选择和动态调整循环范围(startIndex)避免重复原创 2025-09-16 09:00:00 · 1017 阅读 · 0 评论 -
算法,蒜鸟蒜鸟-P2-理解“树的遍历(BFS & DFS)”
本文介绍了树结构的两种基本遍历策略:深度优先搜索(DFS)和广度优先搜索(BFS)。DFS采用递归或栈实现,包括前序、中序和后序遍历三种经典方式;BFS则通过队列实现,适用于层序遍历和最短路径查找。文章通过LeetCode题目示例展示了两种算法的代码实现,并对比了它们的应用场景:DFS适合深度探索,BFS适合广度扩展。原创 2025-09-15 16:56:58 · 818 阅读 · 0 评论 -
算法,蒜鸟蒜鸟-P1-理解“双指针”
本文介绍了双指针算法的两种模式:左右指针和滑动窗口。左右指针适用于有序数组搜索问题,可将时间复杂度优化至O(n);快慢指针则用于解决链表环路等问题。通过示例展示了正确实现双指针算法的逻辑结构,强调状态处理与转移分离的重要性。滑动窗口模式用于解决连续子数组/子串问题,详细说明了其扩展和收缩窗口的步骤,并提供了无重复字符最长子串的代码实现。文章还推荐了相关LeetCode题目和题解资源,帮助读者深入理解双指针算法的应用。原创 2025-09-15 16:56:09 · 770 阅读 · 0 评论 -
数据结构与算法学习导航
数据结构与算法学习导航原创 2025-04-17 23:01:08 · 230 阅读 · 0 评论 -
LeetCode算法题中的数学知识——数论与基本运算
刷LeetCode时,有不少算法题都需要运用到数学中的概念与公式进行求解。本篇对一些基础的数学概念和技巧做一个总结收纳,持续更新。原创 2025-04-03 09:53:11 · 748 阅读 · 0 评论
分享