![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 67
适合java程序员的算法
无痴迷,不成功!
展开
-
算法51:动态规划专练(力扣139题,单词拆分)---从左往右尝试模型的误区
动态规划原创 2024-03-21 14:30:40 · 721 阅读 · 0 评论 -
算法42:天际线问题(力扣218题)---线段树
线段树、离散化技巧、懒更新原创 2024-02-02 13:56:08 · 1197 阅读 · 0 评论 -
算法41:掉落的方块(力扣699题)----线段树
线段树、离散化技巧、懒更新原创 2024-02-02 13:35:55 · 1436 阅读 · 0 评论 -
算法40:线段树 + 懒更新
线段树、懒更新原创 2024-02-01 12:18:25 · 309 阅读 · 0 评论 -
算法39:统计全 1 子矩形(力扣1504)----单调栈
单调栈、数组压缩原创 2024-01-28 15:02:36 · 944 阅读 · 0 评论 -
算法38:子数组的最小值之和(力扣907题)----单调栈
单调栈原创 2024-01-27 16:59:50 · 537 阅读 · 0 评论 -
算法37:最大矩形面积(力扣84、85题)---单调栈
数组压缩、单调栈原创 2024-01-25 13:22:15 · 618 阅读 · 0 评论 -
算法36:单调栈结构、子数组最小乘积的最大值问题(力扣1586)----单调栈
单调栈、前缀和原创 2024-01-25 01:45:27 · 444 阅读 · 0 评论 -
算法35: N皇后问题(力扣52, 51以及 面试题 08.12. 八皇后 )
N皇后问题原创 2024-01-15 16:56:38 · 441 阅读 · 0 评论 -
算法34:贴纸拼词(力扣691题)
递归,记忆化搜索,动态规划、词频统计原创 2024-01-12 11:51:49 · 946 阅读 · 0 评论 -
算法33:返回组成aim的最少货币张数 ----- 从左往右尝试模型
递归、动态规划、从左往右尝试模型、时间复杂度原创 2024-01-09 16:47:33 · 960 阅读 · 0 评论 -
算法32:针对算法31货币问题进行扩展,并对从左往右模型进行总结
递归、动态规划、时间复杂度进行优化原创 2024-01-08 23:01:58 · 500 阅读 · 0 评论 -
算法31:针对算法30货币问题进行拓展 + 时间复杂度 + 空间复杂度优化--------从左往右尝试模型
从左往右模型的技巧总结、动态规划的推理、动态规划时间复杂度、空间复杂度的优化原创 2024-01-04 17:26:05 · 1051 阅读 · 0 评论 -
算法30:arr是货币数组,其中的值都是正数。再给定一个正数aim。每个值都认为是一张货币,即便是值相同的货币也认为每一张都是不同的,返回组成aim的方法数-------从左往右尝试模型
动态规划完整的推导过程,从递归到动态规划,每一步都绘图说明原创 2024-01-03 13:12:45 · 872 阅读 · 0 评论 -
算法29:不同路径问题(力扣62和63题)--针对算法28进行扩展
动态规划之样本模式,针对算法28进行扩展原创 2024-01-02 13:35:29 · 1546 阅读 · 0 评论 -
算法28:最小路径和(力扣64题)
动态规划之样本模型原创 2024-01-02 10:56:23 · 621 阅读 · 0 评论 -
算法24:LeetCode_并查集相关算法(力扣547、200、305题)
并查集原创 2023-03-11 02:25:24 · 611 阅读 · 0 评论 -
算法23:多叉树_派对的最大快乐值
多叉树,公司派对快乐值原创 2023-02-25 18:39:38 · 674 阅读 · 0 评论 -
算法22:二叉树各种算法——万能模板
二叉树算法的固定模板原创 2023-02-23 22:33:40 · 384 阅读 · 0 评论 -
算法21:折纸问题
二叉树中序遍历原创 2023-02-22 10:48:03 · 307 阅读 · 0 评论 -
算法20:求二叉树最宽的层有多少个节点(层序遍历续)
二叉树层序遍历原创 2023-02-22 10:34:14 · 130 阅读 · 0 评论 -
算法19:LeetCode_二叉树序列化与反序列化(层序)
二叉树层序遍历,二叉树序列化与反序列化原创 2023-02-21 13:52:57 · 113 阅读 · 0 评论 -
算法18:LeetCode_链表相关算法题(力扣234题)
链表算法题原创 2023-02-20 17:07:55 · 277 阅读 · 0 评论 -
算法17:堆结构_相关面试题
如果我们按照开始位置start进行初次排序,则会得到一个开始位置有序的线段数组,类似于 {{1,7}, {1,6}, {2,5}, {,63}......}. 然后再遍历数组每个线段的开始位置和结束位置。试想一下,如果k是一个比较小的数,例如3. 每个元素移动的距离一点不会超过3. 假设,每个数移动距离都是都是最大距离 3,)大于堆结构中存储的线段末尾值,那么删除对中对应数据,并且将新线段的 end值存入数组中。了解堆结构和堆排序只是基础,有了以上的铺垫,才能更好的帮助我们理解堆相关的算法以及面试题。原创 2023-02-15 22:20:53 · 254 阅读 · 0 评论 -
算法16:LeetCode_归并排序_相关面试题 (超难)
假设初始序列含义n个记录,则可以看成是n个有序子序列,每个序列的长度为1,然后两两归并,得到【n/2】([x]表示不小于x的最小整数)个长度为2或1的有序咨询;1. 普通两层遍历肯定是可以解出这道题的,但是两层遍历的时间的复杂度是O(N^2). 而归并排序的时间复杂度是 N*logN, 性能上更优。思考: 面试题一是最小和,假设数组为 {5,2,3,4,1},而你使用降序,猜猜得到的最小和会是多少?在一个数组中,一个数左边比它小的数的总和,叫数的小和,所有数的小和累加起来,叫数组小和。原创 2023-02-08 22:41:32 · 642 阅读 · 1 评论 -
算法15:冷门面试题_队列实现栈,栈实现队列
经常有些面试官很变态,一般都是老阴逼级别的,喜欢问一些变态的问题。但是,反过来思考一下,这些题目也确实具备一些动手的能力,变相能够考查面试者的coding能力。实现一个特殊的栈,在基本功能的基础上,再实现返回栈中最小元素的功能。1)pop、push、getMin操作的时间复杂度都是 O(1)。面试一:怎么样用数组实现不产过固定大小的队列和栈?2)设计的栈类型可以使用现成的栈结构。面试题三:用栈结构实现队列。原创 2023-02-08 21:41:47 · 78 阅读 · 0 评论 -
算法12:LeetCode_二叉树的最大深度(力扣104题)
给定二叉树 [3,9,20,null,null,15,7],二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。太简单了,实在没什么说的,直接上代码。给定一个二叉树,找出其最大深度。返回它的最大深度 3。原创 2022-12-10 23:20:05 · 129 阅读 · 0 评论 -
算法11:LeetCode_对称二叉树(力扣101题)
题目: 给你一个二叉树的根节点。, 检查它是否轴对称。原创 2022-12-10 23:16:08 · 154 阅读 · 0 评论 -
算法10:LeetCode_相同的树(力扣100题)
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。具体示例可以参考LeetCode原题给的例子https://leetcode.cn/problems/same-tree/,编写一个函数来检验这两棵树是否相同。给你两棵二叉树的根节点。原创 2022-12-10 23:10:39 · 101 阅读 · 0 评论 -
算法9:LeetCode_给定一个二叉树,判断它是否是高度平衡的二叉树(力扣110题)
本体是Leetcode原题 https://leetcode.cn/problems/binary-tree-level-order-traversal-ii/,根据给定的事例我们知道,本题中判断一棵树是否是高度平衡,并不是说判断这棵树是否是平衡二叉树。此题中,我们只关注这棵树中的左节点和右节点的高度差,并不关注左节点和有节点的值谁大,这和平衡二叉树是有区别的。此题仅仅是判断左子树和右子树的高度差,而不是像判断AVL Tree一样去比较左子节点,根节点,右子节点的值大小。原创 2022-12-10 23:04:46 · 138 阅读 · 0 评论 -
算法8:LeetCode_二叉树的层序遍历(力扣107题)
返回其节点值 自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)LeetCode原题:给你二叉树的根节点。此题比较简单,直接上代码。原创 2022-12-10 22:44:32 · 160 阅读 · 0 评论 -
算法7:AVL树实现
AVL Tree 及其旋转原创 2022-12-10 22:23:01 · 303 阅读 · 0 评论 -
算法2:链表的逆转
算法系列之链表原创 2022-11-19 12:04:12 · 555 阅读 · 0 评论 -
算法6:LeetCode_合并K个有序链表(力扣21、23题)
解题思路:我们可以把两个链表合并进入一个新链表中;也可以寻找两个链表的头结点比较小的值,将另一个链表(L2)的节点插入到头结点比较小的链表(L1)中。题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]原创 2022-11-25 23:41:23 · 391 阅读 · 0 评论 -
算法5: LeetCode_单链表_两数相加(力扣2题)
力扣原题__两数相加原创 2022-11-24 23:43:51 · 87 阅读 · 0 评论 -
JDK学习---深入理解java中的LinkedList
LinkedList原创 2017-09-28 16:58:19 · 268 阅读 · 0 评论 -
JDK学习---深入理解java中的String
JDK学习---深入理解java中的String原创 2017-09-26 16:36:06 · 779 阅读 · 0 评论