盘门
资深程序员兼鼓励师,坚持手撕算法与数据结构,感谢关注。
微信公众号:算法不是事,主打宏观角度如何提升编程能力及大厂面试技巧。
可提供Java八股文、模拟面试、简历优化、数据结构与算法1V1指导、面试全程辅导等服务,欢迎私信。
具体可对接QQ:103138000
展开
-
Java数据结构与算法(混合背包)
混合背包问题是一类复杂的背包问题,包含三种类型的物品:01背包物品(每种只能选一次),完全背包物品(每种可以选无限次),和多重背包物品(每种可以选有限次)。原创 2024-06-19 06:45:19 · 316 阅读 · 0 评论 -
Java数据结构算法(最长递增序列动态规划)
设。原创 2024-06-27 09:07:14 · 226 阅读 · 0 评论 -
Java数据结构与算法(最长回文子串中心扩散法)
回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。原创 2024-06-01 17:32:04 · 429 阅读 · 0 评论 -
Java数据结构与算法(盛水的容器贪心算法)
针对此类算法题,最基本是暴力算法求解,暴力算法基本是固定的套路。在暴力算法基础上寻求优化思路,是否可以单词遍历能否得到所要的结果。此时需要观察数据的特征,推演数据变化对结果的影响,从而找到合理的解题思路。原创 2024-06-09 22:36:25 · 608 阅读 · 0 评论 -
Java数据结构与算法(最长回文子串暴力算法)
回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。原创 2024-06-01 15:45:12 · 313 阅读 · 0 评论 -
Java数据结构与算法(买卖股票的最佳时机二贪心算法)
买卖股票最佳时机二,此时不限次数的买卖的要求获得的利益最大化。暴力算法依旧可行,可以参考之前的练习。原创 2024-06-10 07:14:46 · 499 阅读 · 0 评论 -
Java数据结构与算法(有向图)
有向图(Directed Graph)是一种由顶点和有方向的边组成的图数据结构。原创 2024-05-31 12:51:13 · 401 阅读 · 0 评论 -
Java数据结构与算法(约束问题回溯算法)
要求在一个 N x N 的棋盘上放置 N 个皇后,使得每个皇后都无法攻击到其他任何一个皇后。原创 2024-06-12 09:50:49 · 85 阅读 · 0 评论 -
Java数据结构与算法(爬楼梯动态规划)
爬楼梯就是一个斐波那契数列问题,采用动态规划是最合适不过的。原创 2024-06-08 06:26:22 · 462 阅读 · 0 评论 -
Java数据结构与算法(组合问题回溯算法)
上期重点介绍了回溯算法在约束满足问题情况下应用。这期看看在组合问题场景下如何使用。原创 2024-06-11 16:59:21 · 543 阅读 · 0 评论 -
Java数据结构与算法(买卖股票最佳时机)
动态规划主要用于解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题来解决复杂问题,每个子问题仅解决一次,并将其结果存储,以供后续使用,从而避免了重复计算。买卖股票对应leetcode。原创 2024-06-09 12:16:29 · 293 阅读 · 1 评论 -
Java数据结构与算法(有向无环图)
有向无环图(Directed Graph)是在有向图的基础上,增加无环的检查。原创 2024-05-31 20:04:22 · 531 阅读 · 0 评论 -
Java数据结构与算法(最长回文子串动态规划)
回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。原创 2024-06-05 09:08:18 · 445 阅读 · 0 评论 -
Java数据结构与算法(最大子数组和动态规划)
动态规划主要用于解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为子问题来解决复杂问题,每个子问题仅解决一次,并将其结果存储,以供后续使用,从而避免了重复计算。对应leetcode。原创 2024-06-07 23:11:41 · 545 阅读 · 0 评论 -
Java数据结构与算法(概览)
基于前面动态规划、贪心算法、深度搜索、广度搜索、分治算法的练习,已经初步对这些算法有个认识。但是在面对具体问题选用何种算法仍存在疑惑。下面梳理下这些算法的定义、区别和使用场景来帮助大家更有效巩固这些算法。原创 2024-06-11 09:34:40 · 867 阅读 · 1 评论 -
Java数据结构与算法(数组栈)
栈是一种简单而高效的数据结构,适用于很多应用场景。通过数组或链表实现栈,各有优缺点。数组实现的栈在内存连续性和访问速度上有优势,但可能需要处理动态扩容问题。而链表实现的栈在内存利用上更灵活,但每次操作都涉及节点的创建和销毁。理解和掌握栈的基本原理和操作,对于解决实际编程问题非常有帮助。原创 2024-05-22 13:14:55 · 227 阅读 · 0 评论 -
Java数据结构与算法(栈判断回文链表)
回文链表的判断最适合用栈。原创 2024-05-23 22:16:02 · 286 阅读 · 0 评论 -
Java数据结构与算法(队列移动平均值)
计算计算滑动窗口里所有数字的平均值。原创 2024-05-21 20:52:42 · 317 阅读 · 0 评论 -
Java数据结构与算法(B+树)
B+树(B+ Tree)是一种平衡树数据结构,广泛用于数据库和文件系统中。它是一种自平衡的树结构,每个节点包含多个键,并且所有键都是排序的。B+树的叶子节点包含指向相邻叶子节点的指针,这使得范围查询非常高效。原创 2024-05-27 07:35:36 · 459 阅读 · 0 评论 -
Java数据结构与算法(红黑树)
红黑树是一种自平衡二叉搜索树,确保在插入和删除操作后,树的高度保持平衡,从而保证基本操作(插入、删除、查找)的时间复杂度为O(log n)。原创 2024-05-29 20:26:45 · 608 阅读 · 0 评论 -
java数据结构(链表队列)
这种特性使得队列具有“先进先出”(First In First Out,简称FIFO)的特点,即最早进入队列的元素将最先被移除。队列中,进行插入操作的端称为队尾(rear),进行删除操作的端称为队头(front)。当队列中没有元素时,它被称为空队列。队列的实现方式有多种,包括但不限于使用数组、链表或栈。原创 2024-05-19 21:01:16 · 529 阅读 · 0 评论 -
java数据结构与算法(验证二叉搜索树)
节点返回空为ture,节点的值不在对应数据大小范围内返回false。将验证二叉搜索树计算同样可以转换为相同子问题,所以比较适合用递归。node为root的左节点时,max更新为root.val。node为root的右节点时,min更新为root.val。原创 2024-05-17 13:43:01 · 458 阅读 · 0 评论 -
java数据结构与算法(二叉树的深度)
二叉树的深度计算特别适合用递归计算方式。那么递归适合在什么场景使用?1.必定要有一个明确的结束递归的条件2.问题可以被分解成更小的、相同形式的子问题。递归缺点:递归的空间复杂度较高,并且有堆栈溢出的风险,过多的方法调用会耗时较多,还存在一种重复计算问题。原创 2024-05-16 13:50:43 · 269 阅读 · 0 评论 -
Java数据结构与算法(优先级堆队列)
这种特性使得队列具有“先进先出”(First In First Out,简称FIFO)的特点,即最早进入队列的元素将最先被移除。队列中,进行插入操作的端称为队尾(rear),进行删除操作的端称为队头(front)。当队列中没有元素时,它被称为空队列。队列的实现方式有多种,包括但不限于使用数组、链表或栈。原创 2024-05-20 12:45:00 · 355 阅读 · 0 评论 -
Java数据结构与算法(合并二叉树)
合并二叉树的规则:1.如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;2.如果有节点微null,则另一个节点将直接作为新二叉树的节点。原创 2024-05-18 19:46:01 · 333 阅读 · 0 评论 -
Java数据结构与算法(散列表)
散列表是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。而key的冲突主要通过链表的方式来处理,后期链表过长情况下可以通过红黑树来优化查询效率。原创 2024-05-28 22:29:39 · 563 阅读 · 0 评论 -
Java数据结构与算法(无向图)
图是一种用于表示对象及其相互关系的数据结构。图由顶点(也称为节点)和边组成,边连接顶点,表示顶点之间的关系。根据边的方向性,图可以分为有向图和无向图。根据边的权重,图可以分为加权图和非加权图。原创 2024-05-30 22:30:54 · 496 阅读 · 0 评论 -
Java数据结构与算法(最小栈)
设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()原创 2024-05-23 22:29:49 · 389 阅读 · 0 评论 -
java数据结构与算法(数组队列)
这种特性使得队列具有“先进先出”(First In First Out,简称FIFO)的特点,即最早进入队列的元素将最先被移除。队列中,进行插入操作的端称为队尾(rear),进行删除操作的端称为队头(front)。当队列中没有元素时,它被称为空队列。队列的实现方式有多种,包括但不限于使用数组、链表或栈。原创 2024-05-20 07:07:20 · 518 阅读 · 0 评论 -
Java数据结构和算法(B树)
平衡的意思是又满足平衡二叉树的一些性质,左树大于右树;多路意思是,可以多个结点,不再是像二叉树只有两个结点;原创 2024-05-25 22:28:07 · 586 阅读 · 0 评论 -
Java数据结构与算法(翻转二叉树)
翻转二叉树的规则:1.将二叉树所有节点以根节点为中心进行左右交换。原创 2024-05-19 06:37:58 · 229 阅读 · 0 评论 -
Java数据结构与算法(平衡二叉树)
通过满足特定的条件来保持其平衡性。平衡二叉树的实现原理基于二叉排序树,在构建过程中,每当插入一个结点时,都会检查是否因插入而破坏了树的平衡性。如果破坏了,则找出最小不平衡子树,并在保持二叉排序树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。通过这样的机制,平衡二叉树能够有效地保持其结构的平衡,从而在插入、删除和查找等操作中保持较高的效率。原创 2024-05-25 10:34:02 · 453 阅读 · 0 评论 -
Java数据结构与算法(队列最近请求次数)
计算最近时间范围内的请求次数。参考leetcode最近的请求次数。原创 2024-05-21 07:47:21 · 336 阅读 · 0 评论 -
Java数据结构与算法(链表栈)
栈是一种简单而高效的数据结构,适用于很多应用场景。通过数组或链表实现栈,各有优缺点。数组实现的栈在内存连续性和访问速度上有优势,但可能需要处理动态扩容问题。而链表实现的栈在内存利用上更灵活,但每次操作都涉及节点的创建和销毁。理解和掌握栈的基本原理和操作,对于解决实际编程问题非常有帮助。原创 2024-05-22 18:20:34 · 444 阅读 · 0 评论 -
java数据结构(二叉树)
二叉树(Binary tree)是树形结构的一个重要类型。B+树在mysql索引、红黑树在HashMap中都广泛应用。熟练掌握二叉树有助于更好的理解和应用。原创 2024-05-15 08:46:00 · 420 阅读 · 0 评论 -
java数据结构与算法(二叉树中序遍历)
如果二叉树为空,则遍历结束并返回;否则,首先递归遍历左子树,然后访问根节点,最后递归遍历右子树。原创 2024-05-14 19:22:17 · 341 阅读 · 0 评论 -
java数据结构与算法(二叉树前序遍历)
如果二叉树为空,则遍历结束并返回;否则,首先递归遍历左子树,然后访问根节点,最后递归遍历右子树。原创 2024-05-15 20:55:44 · 253 阅读 · 0 评论 -
java数据结构和算法(循环链表)
循环链表的特点是没有结束指针,通过遍历链表判断链表中是否存在重复元素,这里需要使用HashSet或HashSet的数据结构。原创 2024-05-13 08:55:29 · 392 阅读 · 0 评论 -
java数据结构与算法(反转链表)
反转链表是指将链表中的节点顺序颠倒过来。这在编程中是一个常见的问题。原创 2024-05-14 08:38:56 · 403 阅读 · 0 评论 -
java数据结构与算法(链表归并排序)
链表的归并排序和数组的归并排序类似,只是在操作原有操作数组的基础上对链表进行操作。喜欢的可以试试吧。原创 2024-05-12 07:03:26 · 428 阅读 · 1 评论