自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 刷怪日记-回文链表

【代码】刷怪日记-回文链表。

2024-04-26 22:21:13 151

原创 刷怪日记-01 背包理论问题(一维数组实现)

二维数组遍历背包不采用倒序遍历,是因为dp[i] [j]是由其上方推导出来的,并不会覆盖本层dp[i] [j]的值。dp[2] = dp[2 - weight[0]] + value[0] = 15 (dp数组已经都初始化为0)按照上述推导公式,遍历物品i时,发现物品i被放进去俩次,dp[2]等于30。假设物品价值都是大于0的,所以dp数组初始化的时候,都初始为0就可以了。正上方**推导出来,并且每一个维度都可以覆盖上一个维度的值。遍历背包与二维数组方式不一样,一维数组采用倒序方式,主。

2024-03-06 10:45:04 344 1

原创 刷怪日记-01背包理论问题(二维矩阵实现)

本题采用二维数组进行解题,那么dp[i] [j]表示从下标0-i的物品任意选择,放进容量为j背包,价值总合最大是多少。i 表示物品第几个物品,j 表示背包容量大小。

2024-03-06 10:23:04 647

原创 刷怪日记-不同路径Ⅱ

动态规划的思想,由上一步状态推出下一步状态,因此在统计到[i, j]格的路径之前,可以先统计[i-1, j]、[i, j-1]的路径,再通过前一步格子求出下一步格子的路径。,假如说在第一行或第一列碰见障碍物(1),其同一行\同一列的后面元素路径数均为0,因为后面走不通啦。矩阵[m, n]的第一行和第一列,均只能单方向前进,因此行进路径只有。若排除上述情况,那么在某格遇见障碍物将该格设置为0。

2024-02-29 21:13:35 461

原创 刷怪日记-单调递增的数字

【代码】刷怪日记-单调递增的数字。

2024-02-29 21:12:34 351

原创 刷怪日记-用最少数量的箭引爆气球

为了尽可能让气球重叠,需要对数组进行排序,依据[a,b]中a或b排序均可,只是计算不同,本题是对a进行排序。如果气球重叠了,重叠气球中右边界的最小值之前的区间一定需要一个弓箭。贪心算法,局部最优推全局最优。

2024-02-29 21:11:54 329

原创 刷怪日记-分发糖果

【代码】刷怪日记-分发糖果。

2024-02-25 11:45:42 429 1

原创 刷怪日记-根据身高重建队列

【代码】刷怪日记-根据身高重建队列。

2024-02-25 11:45:06 360 1

原创 刷怪日记-跳跃游戏

【代码】刷怪日记-跳跃游戏。

2024-02-22 23:04:49 325 1

原创 刷怪日记-重新安排行程

将每个航班的终点站进行对比,小的排前面,从而实现字母小的先使用,比如说初始站相同,那么终点站字母小的就在前面先使用了。回溯遍历的过程中,遇到的机场个数,如果达到了(航班数量+1),那么就找到了一个行程,把所有航班串在一起了。通过used[]数组记录航班使用情况,已使用记录为false,从而避免重复。

2024-02-21 23:40:44 301

原创 刷怪日记-修剪二叉搜索树

此题需要采用后序遍历解决,因为可能删除多个节点,如果先序遍历,可能头节点符合删除要求,就直接停止遍历了。

2024-01-21 23:36:51 328

原创 刷怪日记-删除二叉搜索树中的节点

这道题采用前序遍历和后序遍历均可,需要搜索整个树,本算法使用后序遍历。

2024-01-21 23:35:47 334

原创 刷怪日记-二叉树的最近公共祖先

看见这道题首先应该想到**自下向上**遍历,**最近公共祖先**应该先找到p和q,然后再往上找最近公共祖先。

2024-01-20 23:46:10 1312

原创 刷怪日记-二叉搜索树中的众数

二叉搜索树经过**中序遍历**可以看作有序数组。

2024-01-20 22:59:41 319

原创 刷怪日记-从中序与后序遍历序列构造二叉树

观察中序和后序遍历数组,可以发现后序遍历数组末尾元素往往是根节点,例如末尾元素3就是根节点,而元素3在中序遍历数组中刚好可以切割数组为左右子树俩部分。

2024-01-13 20:00:59 358 1

原创 刷怪日记-路径总和Ⅱ

首先确定递归三步曲,此题是从根节点到叶子节点的路径,**自顶向下**,因此采用**先序遍历**递归设计

2024-01-12 20:56:02 333 1

原创 刷怪日记-自底向下解决二叉平衡树

明确递归三步曲,自底向上递归,时间复杂度为O(n),每个节点仅访问依次,空间复杂度O(n),取决于递归调用层数,递归调用层数不会超过n

2024-01-12 20:54:42 418 1

原创 刷怪日记-层序遍历一般应用场景

层序遍历:即逐层地,从左到右依次访问所有节点

2024-01-09 17:57:25 1010

原创 刷题日记-利用递归和栈实现二叉树三种遍历方式

递归和迭代主要区别在于:**递归的时候隐式的维护了一个栈,相当于不停的自身调用自身,迭代则是需要显式的将这个栈实现出来**

2024-01-02 21:25:36 1797

原创 刷怪日记-前k个高频元素

【代码】刷怪日记-前k个高频元素。

2023-12-29 11:08:34 321 1

原创 刷怪日记-俩种方式解决滑动窗口最大值

分别使用堆和单调队列去解决滑动窗口最大值

2023-12-29 10:55:30 364 1

原创 简单易懂JVM系列(三)-根节点枚举及相关算法实现细节

这部分知识在面试过程中频繁出现,了解这部分知识一方面可以使我们对于接下来的垃圾收集器更好理解,另一方面我们可以更深入探讨这些方法细节,避免仅停留于表面概念。那么接下来就进入这部分知识吧!

2023-09-07 16:54:01 109 1

原创 简单易懂JVM系列(二)-垃圾回收概述及算法

在1960年麻省理工学院诞生的Lisp是第一门使用动态分配和垃圾收集技术的语言,其作者提出了关于垃圾收集的三个经典问题。 - 哪些内存需要回收? - 什么时候回收? - 如何回收?

2023-08-28 14:47:58 47 1

原创 深入刨析ArrayList和LinkedList迭代器差异

大多数列表迭代器相关文章和教学视频对于迭代器浅尝辄止,使得我们继续学习集合框架源码过程中频频出现问题。我写这篇文章初衷,就是因为我在学习迭代器时我发现初始化一个迭代器时,此时迭代器是指向第一个元素还是第一个元素前面呢,因此我带着好奇心去研究源码才明白。那么接下来让我们深入理解**不同list实现类的迭代器**。

2023-08-24 19:17:16 138 1

原创 快速了解-Spring5

Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架

2023-08-22 11:34:31 30 1

原创 简单易懂JVM系列(一):JVM内存模型

JVM内存模型是管理Java程序运行时内存的结构。它包括堆、方法区、虚拟机栈等区域。堆用于存储对象,方法区保存类信息和常量池,虚拟机栈和本地方法栈处理方法调用。堆可以自动调整大小,栈为每个线程分配调用栈。正确的内存配置和管理是确保程序稳定性和性能的关键。内存泄漏和溢出可能导致问题。了解JVM内存模型及其区域对于Java开发至关重要。

2023-08-09 12:20:11 57 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除